迴圈結構是計算機語言中非常神奇的結構,因為我們會把很對重複的、流水線的活兒交給他去完成。python中有兩種迴圈結構for......in迴圈,還有while。
如果我們已經知道迴圈執行的次數,也可以是要對乙個容器進行迭代,建議使用for......in迴圈,例1-100進行求和。
sum = 0
for i in range(101):
sum = sum + i
print(sum)
range(101)是構造i的乙個取值範圍,可以列印range(101),當我們使用迴圈的時候就會把1-100的值依次賦值給迴圈變數x,當然range非常靈活。
range語法:
range(start, stop[, step])
start 開始計數標識,range(5)等於range(0,5),預設左開右關(記起老夫學得還算可以的高中數學)。
stop 計數到stop結束,不包括stop。記住左開右關就可以了。
step 步長,預設為1。步長其實就是數字間間隔大小。range(5)等於range(0,5,1)。
使用python如何列印100以內所有偶數的和呢?
sum = 0
for i in range(0,101,2):
sum += i
print(sum)
如果我們不知道具體的迴圈次數,建議使用while迴圈。while迴圈通過產生或轉換出bool值的表示式來控制迴圈。判斷表示式的值為true時繼續執行,為false時則結束迴圈。簡單來說就是while迴圈可以設定迴圈基數,在**塊內編寫迴圈規則,完成需要迴圈的內容。
# 列印1-100的和
sum = 0
i = 100
while i > 0:
sum += i
i -= 1
print(sum)
理解原理後我們來乙個較複雜一點的while迴圈,結合前面所學的判斷,完成乙個隨機猜數的小遊戲,請看。
# 從1-100隨意產生乙個數跟我們輸入的乙個數去對比,給出提示資訊(偏大、偏小或者猜對了),並輸出最終猜對後的次數。
import random
rannum = random.randint(1,100)
counter = 0
while true:
counter += 1
number = int(input('請輸入:'))
if number > rannum:
print('偏大')
elif number < rannum:
print('偏小')
else:
print('猜對了呢!!!!')
break
print('你在猜了%d後,成功猜對了' %(counter))
if counter > 8:
print('wocao,媽媽炒的黃花菜都涼透了')
在上面的迴圈例項中我們使用的東西,對於新手來說可能面對著乙個不小的挑戰,我們用到了迴圈巢狀,還有終止迴圈break,學習的時候很多資源大家都能在網路資源中尋找到,排除天賦這個神奇的東西為什麼有很多童鞋學的快呢?很大一部分原因在於梳理、回顧、然後嘗試嘗試再嘗試。
和分支判斷一樣迴圈也能進行多重巢狀,也就是說迴圈中還能接著迴圈。
# 我們來輸出新手必需玩的99乘法表
for i in range(1,10):
for j in range(1,i+1):
print('%d * %d = %d' %(i,j,i*j),'\t') # '\t' 換行
print(' ')
# 使用while迴圈列印99乘法表
i = 1
j = 1
while i < 10:
while j <= i:
print('%d*%d=%d' %(i,j,i*j),end=' ')
j += 1
print(" ")
j = 1
i += 1
#輸入乙個正整數判斷是否為素數
ints = int(input('請輸入乙個正整數:'))
is_prime = true
if ints > 0:
for i in (2,ints):
if ints % i ==0:
is_prime = false
break
if is_prime and ints != 1:
print('你輸入的整數%d為素數' %(ints))
else:
print('你輸入的整數%d為非素數' %(ints))
else:
print('限定範圍為正整數哦!')
# 求兩個正整數的最大公約數和最小公倍數
randx = int(input('輸入乙個正整數x:'))
randy = int(input('輸入乙個正整數y:'))
if randx > randy or randx < randy:
randx,randy = randy,randx
for number in range(randx,0,-1):
if randx % number == 0 and randy % number == 0:
print('%d 和 %d 的最大公約數為 %d' %(randx,randy,number))
print('%d 和 %d 的最小公倍數為 %d' %(randx,randy,(randx * randy // number)))
break
else:
print('兩個相等的數你說你為啥要求那啥')
# 根據輸入行數列印*
row = int(input('輸入你要列印*行數:'))
for i in range(row):
for j in range(i+1):
print('*',end=' ')
print('')
for i in range(row):
for j in range(row):
if j < row - i -1:
print(' ',end=' ')
else:
print('*',end=' ')
print('')
for i in range(row):
for j in range(row - i - 1):
print(' ',end=' ')
for j in range(2 * i + 1):
print('*',end=' ')
print()
學到中年的Python學習日記
1.python是什麼型別的語言?答 python是解釋型 物件導向 動態資料型別的高階程式語言 我的理解就是指令碼語言,簡單方便 操作性強 理解容易。指令碼語言的特性 2.idle是什麼?idle是乙個python shell,就是乙個鍵盤輸入與程式互動的途徑。類似與windows的cmd,lin...
第一次學習Python學到的內容
學習的第乙個資料型別是字串,字串是用引號標記的文字,字串裡可以包含數字,字母和符號。舉例 cat 將他輸入到python直譯器裡,直譯器會返回相同的內容。字串的首尾必須用相同的引號。學習的第二種和第三種資料型別是整型和浮點型,舉例 10,1,0,1,將上面的整數輸入到python直譯器裡,直譯器會返...
今日的學習學到了什麼
感覺對api不熟練,吧一些老書翻了出來,重新讀一遍 andriod studio 複寫系統方法快捷鍵ctrl o,哇,爽的一筆。乙個完整的生命週期,oncreate建立初始化,onstart由不可見變為可見,onresume準備好與使用者進行互動,此時在棧頂,onpause去啟動另外乙個活動時,與o...