學到中年的python學習筆記02 迴圈結構

2021-10-07 13:53:29 字數 3433 閱讀 4102

迴圈結構是計算機語言中非常神奇的結構,因為我們會把很對重複的、流水線的活兒交給他去完成。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...