#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–2. 迴圈. 編寫乙個程式, 讓使用者輸入三個數字: (f)rom, (t)o, 和 (i)ncrement .
# 以 i為步長, 從 f 計數到 t , 包括 f 和 t . 例如, 如果輸入的是 f == 2,
# t == 26, i == 4 , 程式將輸出 2, 6, 10, 14, 18, 22, 26.
f = int(raw_input("please input from: "))
t = int(raw_input("please input to: "))
i = int(raw_input("please input increment: "))
print range(f, t+i, i)
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–3. range() . 如果我們需要生成下面的這些列表, 分別需要在 range() 內建函式中提供那些引數?
# (a) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# (b) [3, 6, 9, 12, 15, 18]
# (c) [-20, 200, 420, 640, 860]
print range(0, 10)
print range(3, 21, 3)
print range(-20, 980, 220)
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–4. 素數. 我們在本章已經給出了一些**來確定乙個數字的最大約數或者它是否是乙個
# 素數. 請把相關**轉換為乙個返回值為布林值的函式,函式名為 isprime() .
# 如果輸入的是乙個素數, 那麼返回 true , 否則返回 false .
import math
def isprime(number):
num = int(math.sqrt(number))
while num > 1:
if number % num == 0:
return false
num -= 1
else:
return true
print zip(range(1, 12), (isprime(x) for x in range(1, 12)))
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–5. 約數. 完成乙個名為 getfactors() 的函式. 它接受乙個整數作為引數,
# 返回它所有約數的列表, 包括 1 和它本身.
def getfactors(number):
factorslist = [number]
num = number / 2
while num > 0:
if number % num == 0:
num -= 1
return factorslist
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–6. 素因子分解. 以剛才練習中的 isprime() 和 getfactors() 函式為基礎編寫乙個函式,
# 它接受乙個整數作為引數, 返回該整數所有素數因子的列表. 這個過程叫做求素因子分解,
# 它輸出的所有因子之積應該是原來的數字. 注意列表裡可能有重複的元素. 例如輸入 20 ,
# 返回結果應該是 [2, 2, 5] .
import math
def isprime(number):
num = int(math.sqrt(number))
while num > 1:
if number % num == 0:
return false
num -= 1
else:
return true
def getfactors(number):
factorslist = [number]
num = number / 2
while num > 0:
if number % num == 0:
num -= 1
return factorslist
def getprimefactors(number):
primefactors =
if isprime(number):
return primefactors
else:
factors = getfactors(number)
factor = factors[1]
if isprime(factor):
prime = getprimefactors(number/factor)
elif isprime(number/factor):
prime = getprimefactors(factor)
else:
prime = getprimefactors(factor)
primefactors += prime
primefactors.sort()
return primefactors
print getprimefactors(20)
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–7. 全數. 完全數被定義為這樣的數字: 它的約數(不包括它自己)之和為它本身.
# 例如: 6的約數是 1, 2, 3, 因為 1 + 2 + 3 = 6 , 所以 6 被認為是乙個完全數.
# 編寫乙個名為 isperfect()的函式, 它接受乙個整數作為引數, 如果這個數字是完全數,
# 返回 1 ; 否則返回 0 .
def getfactors(number):
factorslist = [number]
num = number / 2
while num > 0:
if number % num == 0:
num -= 1
return factorslist
def isperfect(number):
factorlist = getfactors(number)
factorlist.remove(number)
if sum(factorlist) == number:
return 1
else:
return 0
for i in range(1, 1000):
if isperfect(i) == 1:
print i
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–8. 階乘. 乙個數的階乘被定義為從 1 到該數字所有數字的乘積. n 的階乘簡寫為 n! .
# 寫乙個函式, 指定n, 返回 n! 的值.
def getfactorial(number):
product = 1
for i in range(2, number+1):
product *= i
else:
return product
print getfactorial(10)
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–9. fibonacci 數列. fibonacci 數列形如 1, 1, 2, 3, 5, 8, 13, 21, 等等. 也就是說,
# 下乙個值是序列中前兩個值之和. 寫乙個函式, 給定 n , 返回第 n 個 fibonacci 數字.
# 例如, 第1 個 fibonacci 數字是 1 , 第 6 個是 8 .
def getfibonacci(number):
if number == 1 or number == 2:
return 1
else:
befornumbers = [1, 1]
for i in range(3, number):
fibonacci = sum(befornumbers)
befornumbers.pop(0)
else:
return sum(befornumbers)
print getfibonacci(10)
Python核心程式設計 第八章
1.三元操作符 x,y 4,3 if x y smaller x else smaller y smaller 3 smaller 0 smaller x smaller 3 smaller x if x smaller 3x if c else y 2.迭代序列有三種方法。通過序列項迭代 name...
Python核心程式設計 第八章練習
再這個題中,我試圖用xrange代替range來解決問題,但是結果輸出了 xrange 2,26,4 這樣奇怪的答案。然後才理解了書上的 xrange不產生列表 這句話的含義。python ifname main numbers raw input please input from,to,incr...
第八章 指標 第八章 指標
1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...