天天看點

Python順序、條件和循環

文章目錄

  • ​​順序語句​​
  • ​​條件語句​​
  • ​​文法格式​​
  • ​​代碼案例​​
  • ​​縮進和代碼塊​​
  • ​​空語句pass​​
  • ​​循環語句​​
  • ​​while循環​​
  • ​​文法格式​​
  • ​​代碼案例​​
  • ​​for循環​​
  • ​​文法格式​​
  • ​​代碼案例​​

順序語句

預設情況下,Python的代碼執行順序是按照從上到下依次執行的。比如:

print('a')  # a
print('b')  # b
print('c')  # c      

上述代碼的執行結果一定是“abc”,而不會出現“bca”或“cba”等結果,這種按照順序執行的代碼就叫做順序語句。

條件語句

文法格式

标準格式

條件語句的标準格式如下:

Python順序、條件和循環

注意事項:

  • 條件表達式和else後面使用​

    ​:​

    ​作為結尾。
  • 對于多條件分支,不是寫作else if,而是elif。
  • 命中條件後要執行的語句塊,使用縮進來區分各個代碼塊。
  • Python當中的if語句也支援嵌套。

代碼示例:

choice = input('你大學期間認真學習了嗎?(輸入1表示是,輸入0表示否): ')
if choice == '1':
    print('你将會考研順利或找到一個滿意的工作!')
elif choice == '0':
    print('你将來會為此而後悔!')
else:
    print('你的輸入有誤!')      

注意: input函數的傳回值是字元串類型。

簡寫格式

條件語句的簡寫格式如下:

Python順序、條件和循環

代碼示例:

a = 10
b = 20
# 單行if語句
if a < b: print('a is less than b')
# 單行if else語句(一個條件語句)
print('a') if a < b else print('b')
# 單行if else語句(多個條件語句)
print('a') if a < b else print('=') if a == b else print('b')      

代碼案例

一、輸入一個整數,判定是否是奇數。

代碼如下:

a = int(input('請輸入一個整數: '))  # 注意将輸入的字元串轉換成int類型

if a % 2 == 1:
    print('這是一個奇數')
else:
    print('這是一個偶數')      

說明一下: 在C/C++等其他某些語言中,負奇數取餘後得到的是-1,但在Python中負奇數取餘後得到的是1。

二、輸入一個整數,判定是正數還是負數

代碼如下:

a = int(input('請輸入一個整數: '))

if a > 0:
    print('正數')
elif a < 0:
    print('負數')
else:
    print('0')      
三、判定年份是否是閏年

代碼如下:

year = int(input('請輸入一個年份: '))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print('閏年')
else:
    print('平年')      

縮進和代碼塊

Python中使用縮進來表示不同的代碼塊,不同級别的縮進,程式的執行效果是不同的。比如:

# 代碼1
num = input('請輸入一個整數: ')
if num == '1':
    print('hello')
    print('world')

# 代碼2
num = input('請輸入一個整數: ')
if num == '1':
    print('hello')
print('world')      

代碼說明:

  • 代碼1中的兩條列印語句都具有一級縮進,是以都屬于if内的代碼塊。
  • 代碼2中隻有第一條列印語句具有一級縮進,第二條列印語句沒有縮進,是以隻有第一條列印語句屬于if内的代碼塊。

空語句pass

Python文法規定,if語句、while語句、for語句、函數體、類定義等都不能為空,如果因為某些原因寫了對應無内容的語句,就需要使用pass語句來避免文法報錯。比如:

if a < b:
    pass
    
while a < b:
    pass
    
for x in range(10):
    pass

def func():
    pass

class MyClass:
    pass      

注意: 空語句pass并不會對程式的執行有任何影響,隻是占個位置,保持Python文法格式符合要求。

循環語句

while循環

文法格式

while循環語句的文法格式如下:

Python順序、條件和循環

注意事項:

  • 在條件表達式和else後面使用​

    ​:​

    ​作為結尾。
  • 命中條件後要執行的語句塊,使用縮進來區分各個代碼塊。
  • Python當中的while循環也支援嵌套。
  • 在循環體當中使用break語句,可以跳出循環。
  • 在循環體當中使用continue語句,可以停止目前的疊代,并繼續下一次疊代。
  • 如果使用了else語句,那麼當循環條件不再成立時,會執行一次else代碼塊。

代碼案例

一、列印1 - 10的整數

代碼如下:

num = 1
while num <= 10:
    print(num)
    num += 1      
二、計算1 - 100的和

代碼如下:

sum = 0
num = 1
while num <= 100:
    sum += num
    num += 1
print(f'sum = {sum}')  # 5050      
三、計算5的階乘

代碼如下:

result = 1
num = 5
while num >= 1:
    result *= num
    num -= 1
print(f'result = {result}')  # 120      
四、求1! + 2! + 3! + 4! + 5!

代碼如下:

sum = 0
num = 1
while num <= 5:
    factorResult = 1
    i = 1
    # 計算num的階乘
    while i <= num:
        factorResult *= i
        i += 1
    sum += factorResult  # 将num的階乘累加到sum中
    num += 1
print(f'sum = {sum}')  # 153      

for循環

文法格式

文法格式

for循環語句的文法格式如下:

Python順序、條件和循環

注意事項:

  • 可疊代對象包括清單、元組、字典、集合、字元串等。
  • 在可疊代對象和else後面使用​

    ​:​

    ​作為結尾。
  • 命中條件後要執行的語句塊,使用縮進來區分各個代碼塊。
  • Python當中的for循環也支援嵌套。
  • 在循環體當中使用break語句,可以跳出循環。
  • 在循環體當中使用continue語句,可以停止目前的疊代,并繼續下一次疊代。
  • 如果使用了else語句,那麼當循環條件不再成立時,會執行一次else代碼塊。
range函數

range函數經常和for循環搭配使用,其可以傳回一個數字序列(可疊代對象)。

Python順序、條件和循環

參數說明:

  • 第一個參數代表的是數字序列的起始值,預設為0。
  • 第二個參數代表的是數字序列的結束值(不包括結束值)。
  • 第三個參數代表的是數字序列的增量值(步長),預設為1。

range函數的三種使用方式:

  • range(end):傳回的數字序列為1,2,3,…,end-1。
  • range(start, end):傳回的數字序列為start,start+1,start+2,…,end-1。
  • range(start, end, step):傳回的數字序列為start,start+step,start+2step,…,start+nstep。

對于range函數的第三種使用方式,如果step的值為正數,那麼start+nstep < end,如果step的值為負數,那麼start+nstep > end。

示例:

range(10)         # 0,1,2,3,4,5,6,7,8,9
range(1, 10)      # 1,2,3,4,5,6,7,8,9
range(1, 10, 2)   # 1,3,5,7,9
range(10, 1, -2)  # 10,8,6,4,2      

代碼案例

一、列印1 - 10的整數

代碼如下:

for i in range(1, 11):
    print(i)      
二、列印2,4,6,8,10

代碼如下:

for i in range(2, 12, 2):
    print(i)      
三、列印10 - 1的整數

代碼如下:

for i in range(10, 0, -1):
    print(i)      
sum= 0
for i in range(1, 101):
    sum+= i
print(f'sum = {sum}')  # 5050