1. 程式人生 > >2.判斷語句和迴圈語句

2.判斷語句和迴圈語句

2.1 運算子

  • 1 算數運算子

注意:混合運算時,優先順序順序為: ** 高於 * / % // 高於 + - ,為了避免歧義,建議使用 () 來處理運算子優先順序;並且,不同型別的數字在進行混合運算時,整數將會轉換成浮點數進行運算。

shift + enter 指標快速到下一行

  • 2 賦值運算子 =
  • 定義 把=右邊的結果賦給左邊的變數
  • 單個變數賦值 num = 10
  • 多個變數賦值 num1,num2,num3,flo1,str1 = 10,20,30,3.14,love
  • 3 複合賦值運算子

2.2 資料型別轉換

2.3 判斷語句介紹

如果某些條件滿足,才能做某件事情;條件不滿足時,則不能做,這就是所謂的判斷
如果…就…

2.4 if語句

if 要判讀的條件:
	條件成立時要做的事

2.5 比較、邏輯運算子

  • 1 比較(即關係)運算子
  • 運算子 描述 示例
  • ==檢查兩個運算元的值是否相等,如果是則條件變為真。 如a=3,b=3,則(a == b) 為 True
  • != 檢查兩個運算元的值是否相等,如果值不相等,則條件變為真。 如a=1,b=3,則(a != b) 為 True
  • 檢查左運算元的值是否大於右運算元的值,如果是,則條件成立。 如a=7,b=3,則(a > b) 為 True

  • < 檢查左運算元的值是否小於右運算元的值,如果是,則條件成立。 如a=7,b=3,則(a < b) 為 False
  • = 檢查左運算元的值是否大於或等於右運算元的值,如果是,則條件成立。 如a=3,b=3,則(a >= b) 為 True

  • <= 檢查左運算元的值是否小於或等於右運算元的值,如果是,則條件成立。 如a=3,b=3,則(a <= b) 為 True
  • 2 邏輯運算子
  • 運算子 邏輯表示式 描述 例項
  • and x and y 布林"與":如果 x 為 False,x and y 返回 False,否則它返回 y 的值。 True and False, 返回 False。
  • or x or y 布林"或":如果 x 是 True,它返回 True,否則它返回 y 的值。 False or True, 返回 True。
  • not not x 布林"非":如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 not True 返回 False, not False 返回 True

2.6 if-else

if 條件:
    滿足條件時要做的事情1
    滿足條件時要做的事情2
    滿足條件時要做的事情3
    ...(省略)...
else:
    不滿足條件時要做的事情1
    不滿足條件時要做的事情2
    不滿足條件時要做的事情3
    ...(省略)...

如果…就…,否則…

2.7 elif

if xxx1:
    事情1
elif xxx2:
    事情2
elif xxx3:
    事情3

如果…就…,又如果…就…,如果…就…
可以和else一起使用

2.8 if巢狀

if 條件1:

    滿足條件1 做的事情1
    滿足條件1 做的事情2

    if 條件2:
        滿足條件2 做的事情1
        滿足條件2 做的事情2

2.9 if應用:猜拳遊戲

import random
com = random.randint(0,2)  # 電腦出招
# print(com)
player = int(input('請出招(0表示剪刀,1表示石頭,2表示布:'))  # 玩家出招
# 判斷是電腦還是玩家贏了
if (player == 0 and com == 2) or (player == 1 and com == 0) or(player == 2 and com == 1):
    # 只要出現以上三種情況,說明玩家贏了
    print('不要走,決戰到天亮!')
elif player == com:
    print('平局,再來!')
else:
    print('洗洗手,再來?')

2.10 迴圈語句介紹

  • while和if的用法基本類似,區別在於:if 條件成立,則執行一次; while 條件成立,則重複執行,直到條件不成立為止。

  • 一般情況下,需要多次重複執行的程式碼,都可以用迴圈的方式來完成

  • 迴圈不是必須要使用的,但是為了提高程式碼的重複使用率,所以有經驗的開發者都會採用迴圈

2.11 while迴圈

2.12 while迴圈應用

  • 計算1~100的累積和(包含1和100)
sum = 0
i = 0
while i <= 100:
    sum = sum + i
    i += 1
print(sum)
  • 計算1~100之間偶數的累積和(包含1和100)
sum = 0
i = 0
while i <= 100:
    if i % 2 == 0:
        sum = sum + i
    i += 1
print(sum)

2.13 while迴圈的巢狀以及應用(難點)

while 條件1:

    條件1滿足時,做的事情1
    條件1滿足時,做的事情2
    條件1滿足時,做的事情3
    ...(省略)...

    while 條件2:
        條件2滿足時,做的事情1
        條件2滿足時,做的事情2
        條件2滿足時,做的事情3
        ...(省略)...
  • while巢狀應用一 列印三角形
# while巢狀應用一 列印三角形 左下角
i = 1  # 行 逐行列印
while i <= 5:
    print('* ' * i)
    i += 1
print('-----------------------------')
i = 1  # 行 逐個列印
while i <= 5:
    j = 1  # 逐個列印
    while j <= i:
        print('* ', end='')
        j += 1
    print()  # 列印空號,填充,保持格式
    i += 1
  • while巢狀應用二 九九乘法表
# while巢狀應用二 九九乘法表 左下角
i = 1  # 行 逐個列印
while i <= 9:
    j = 1  # 逐個列印
    while j <= i:
        print('%d*%d=%2d'% (j,i,j*i), end='  ')
        j += 1
    print()  # 換行
    i += 1
print('-----------------------------1--------------------------------------')
#九九乘法表 完整
i = 1
while i <= 9:
    j = 1
    while j <= 9:
        print('%d*%d=%2d' % (j, i, j * i), end='  ')
        j += 1
    print()  # 換行
    i += 1

print('------------------------------2--------------------------------------')

# for
# 完整九九乘法表
for i in range(1, 10):
    for j in range(1, 10):
        print('%d*%d=%2d' % (j, i, j * i), end='  ')
    print()
print('------------------------------3--------------------------------------')
#左上角九九乘法表

for i in range(1, 10):
    for j in range(i, 10):
        print('%d*%d=%2d'%(i, j, i*j), end='  ')
    print()

print('------------------------------4--------------------------------------')
#右上角九九乘法表
for i in range(1, 10):
    for k in range(1, i):
        print('        ', end='')
    for j in range(i, 10):
        print('%d*%d=%2d' % (i, j, i * j), end='  ')
    print()
print('------------------------------5--------------------------------------')
# 右下角九九乘法表
for i in range(1, 10):
    for k in range(1, 10-i):
        print('        ', end='')
    for j in range(1, i+1):
        print('%d*%d=%2d' % (j, i, j * i), end='  ')
    print()