重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
如果非要自己定義一個函數用循環求階乘,可以這樣寫(縮進格式見下圖):
雙湖網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、自適應網站建設等網站項目制作,到程序開發,運營維護。成都創新互聯公司從2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司。
def jc(n):
i,fact=1,1
while i=n:
fact*=i
i+=1
return fact
print(jc(6))
運行截圖:
稍微比較好一點的方法是用functools模塊的reduce函數,像這樣:
from functools import reduce
n=6
fact=reduce(lambda x,y:x*y,range(1,n+1))
print(fact)
更好一點的辦法是直接使用math模塊的求階乘的函數factorial,像這樣寫:
import math
print(math.factorial(6))
python 循環語句:
while 判斷條件(condition):
執行語句(statements)……
執行語句可以是單個語句或語句塊。判斷條件可以是任何表達式,任何非零、或非空(null)的值均為true。
當判斷條件假 false 時,循環結束。
Python語言風格簡介:
Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,并且被大量用戶所歡迎的、用途廣泛的語言。
對于一個特定的問題,只要有一種最好的方法來解決就好。這在由Tim Peters寫的Python格言里面表述為:There should be one-- and preferably only one --obvious way to do it. 這正好和Perl語言的中心思想TMTOWTDI完全相反。
Python的作者有意的設計限制性很強的語法,使得不好的編程習慣都不能通過編譯。其中很重要的一項就是Python的縮進規則。
編寫循環的技巧,for循環包含了常見的計數器式循環。由于通常for循環比while循環更容易寫,也執行得更快,所以for循環一般是你遍歷序列或其他可迭代對象時的首選。事實上,作為一條通用法則,你應該克制在Python中使用計數方式的誘惑——Python提供的迭代工具,能幫你把像C這樣低級語言中循環集合體的工作自動化。不過,有些情況下你還是需要以更為特定的方式進行迭代。例如,如果你需要在列表中每隔一個元素或每隔兩個元素進行訪問,或是要同時修改列表呢?如果在同一個for循環內,并行遍歷一個以上的序列呢?如果你也需要進行索引呢?
你總是可以用while循環和手動索引運算來編寫這些獨特的循環,但是python提供了一套內置函數,可以幫你在for循環內定制迭代:·內置函數range (Python 0.X及之后版本可用)返回一系列連續增加的整數,可作為for中的索引。內置函數zip (Python 2.0及之后版本可用)返回一系列并行元素的元組,可用于在for中內遍歷多個序列。內置函數enumerate (Python 2.3及之后版本可用)同時生成可迭代對象中元素的值和索引,因而我們不必再手動計數。內置函數map (Python 1.0及之后版本可用)在Python 2.X中與zip有著相似的效果,但是在3.X中 map 的這一角色被移除了。因為for循環可能會比基于while的計數器循環運行得更快,所以借助這些工具并盡可能地使用for循環,會讓你受益匪淺。讓我們在常見的使用場景下,依次看一看這些內置函數吧。我們將會看到,它們的用法在Python 2.X和3.X中稍有不同,同時它們中的一些要比其他的更加有效。
return
會直接另函數返回,函數就運行結束了,所有該函數體內的代碼都不再執行了,所以該函數體內的循環也不可能再繼續運行。
如果你需要讓循環繼續執行,就不能return函數,而應該選用break或者continue。
break:跳出所在的當前整個循環,到外層代碼繼續執行。
continue:跳出本次循環,從下一個迭代繼續運行循環,內層循環執行完畢,外層代碼繼續運行。
return:直接返回函數,所有該函數體內的代碼(包括循環體)都不會再執行。
#腳本里面直接這樣寫就好了import randomdef R(): print (random.randint(1,1000))for i in range(1,10): R()
for ... in ...
//?for?...?in?字符串
for?i?in?'abc':
print(i)
'''
a
b
c
'''
//?for?...?in?數組
for?i?in?['a',?'b',?'c']:
print(i)
'''
a
b
c
'''
//?for?...?in?元組
for?i?in?('a',?'b',?'c'):
print(i)
'''
a
b
c
'''
//?for?...?in?字典(得到的是字典的key)
for?k?in?{'學號':30,'姓名':'小明'}:
print(k)
'''
姓名
學號
'''
//?for?...?in?字典.items()(得到的是字典的key,?value)
for?k,?v?in?{'學號':30,'姓名':'小明'}.items():
print(k,?v)
'''
姓名?小明
學號?30
'''
for ... in range(...)
//?for?...?in?range(num)
for?i?in?range(3):
print(i)
'''
1
2
'''
//?for?...?in?range(num1,?num2)
for?i?in?range(1,?3):
print(i)
'''
1
2
'''
//?for?...?in?range(num1,?num2,?num3)
for?i?in?range(3,?1,?-1):
print(i)
'''
3
2
'''
for?i?in?range(1,?5,?2):
print(i)
'''????????
1
3
'''
倒敘
for?i?in?reversed([1,2,3,4]):
print(i)
’‘’
4
3
2
1
‘’‘
又想得到遍歷次數,又想得到數組值
for i,e in enumerate(array):
for?i,e?in?enumerate(['21dw',?55,?22,?'rw']):
print(i,?e)
'''
0?21dw
1?55
2?22
3?rw
'''
列表生成式
[...for ... in array]]
print([x?*?x?for?x?in?[2,?34,?324,?43]])
'''
[4,?1156,?104976,?1849]
'''
//相當于
list?=?[]
for?x?in?[2,?34,?324,?43]:
list.append(x?*?x)
print(list)