python_分支與循環(huán)

1.1.條件語句

python條件語句跟其他語言基本一致,都是通過一條或多條語句的執(zhí)行結(jié)果(True或者False),來決定執(zhí)行的代碼塊。
python程序語言指定任何非0和非空(None)值為True,0或者None為False。

1.1.1.if語句的基本形式

python中,if語句的基本形式如下:

if判斷條件:
      執(zhí)行語句......
else:
      執(zhí)行語句......

前面提到過,python語言有著嚴(yán)格地縮進(jìn)要求,因此這里也要注意縮進(jìn),也不要少寫了冒號:。
if語句的判斷條件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)來表示其關(guān)系。
例如:

res = 59
if res >=60:
    print('及格')
else:
    print('不及格')

輸出的結(jié)果為:

不及格

上面也說到,非零數(shù)值、非空字符串、非空list等,判斷為True,否則為False。因此也可以這樣寫:

num = 6
if num:
    print('Hello Python')

1.1.2if語句多個判斷條件的形式

有些時候,我們的判斷語句需要多個

if 判斷語句:
      執(zhí)行語句1......
elif判斷條件2:
      執(zhí)行語句2......
elif判斷條件3:
      執(zhí)行語句3......
else:
      執(zhí)行語句4......

實例:

res = 89
if res > 90:
    print('優(yōu)秀')
elif res > 80:
    print('良好')
elif res > 60:
    print('及格')
else:
    print('不及格')

輸出:

良好

1.1.3.if語句多個條件同時判斷

python不像java有swith語句,所以多個條件判斷,只能用elif來實現(xiàn),但是有需要多個條件同時判斷時,可以使用or(或),表示兩個條件有一個成立時判斷成功;使用and(與)時,表示只有兩個條件同時成立的情況下,判斷條件才成功。

java = 86
python = 68
if java > 80 and python > 80:
    print('優(yōu)秀')
else:
    print('不優(yōu)秀')

輸出:

不優(yōu)秀

注意:if有多個條件時可使用括號來區(qū)分判斷的先后順序,括號中的判斷優(yōu)先執(zhí)行,此外and和or的優(yōu)先級低于>(大于)、<(小于)等判斷符號,即大于和小于在沒有括號的情況下會比與或要優(yōu)先判斷。

java = 86
python = 68
if (80 <= java < 90) or (80 <= python < 90):
    print('良好')

輸出:

良好

1.2.循環(huán)語句

一般循環(huán)語言都有循環(huán)語言,循環(huán)語句允許我們執(zhí)行一個語句或語句組多次。
循環(huán)語句的一般形式如下:



python提供了for循環(huán)和while循環(huán),當(dāng)然還有一些控制循環(huán)的語句:
break 在語句塊執(zhí)行過程中終止循環(huán),并且跳出整個循環(huán)
continue 在語句塊執(zhí)行過程中終止當(dāng)前循環(huán),跳出該次循環(huán),執(zhí)行下一次循環(huán)
pass pass是空語句,是為了保持程序結(jié)構(gòu)的完整性

1.2.1.While循環(huán)語句

count = 1
sum = 0
while count <= 100:
    sum = sum + count
    count = count +1
print(sum) 

輸出:

5050

當(dāng)然while語句還有另外兩個重要的命令continue,break來跳過循環(huán),continue用于跳過該次循環(huán),break則是用語跳出本層循環(huán)
比如,上面的例子是計算1到100所有整數(shù)的和,當(dāng)我們需要判斷sum大于1000的整數(shù),不在相加時,可以用到break,退出整個循環(huán)

count = 1
sum = 0
while count <= 100:
    sum = sum + count
    if sum > 1000:
        break
    count = count + 1
print(sum)

輸出:

1035

我們只想統(tǒng)計1到100之間的奇數(shù)和,那么也就是說當(dāng)count時偶數(shù),跳出當(dāng)次的循環(huán),不相加,這時候可以用continue

count = 1
sum = 0
while count <= 100:
    if count % 2 == 0:
        count = count + 1
        continue
    sum = sum + count
    count = count + 1
print(sum)

輸出:

2500

在python的while循環(huán)中,還可以使用else語句,while...else...在循環(huán)條件為fale時執(zhí)行else語句塊

count = 0
while count < 5:
    print(count)
    count = count + 1
else:
    print(count)

輸出:

0
1
2
3
4
5

1.2.2.for循環(huán)語句

for循環(huán)可以遍歷任何序列的項目,如一個字符串
它的流程圖基本如下:

!

基本的語法格式:
for iterating_var in sequence:
    statements(s)

實例:

for letter in 'www.neuedu.com':
    print(letter)

輸出:

w
w
w
.
n
e
u
e
d
u
.
c
o
m

range()函數(shù)
python函數(shù)range()讓你能夠輕松地生成一系列的數(shù)字:

for value in range(1,5):
    print(value)

上述代碼好像應(yīng)該打印數(shù)字1~5,但實際上它不會打印數(shù)字5:

1
2
3
4

函數(shù)range()讓python從你指定的第一個值開始數(shù),并在到達(dá)你指定的第二個值后停止,因此輸出不包含第二個值。

1.2.3.嵌套循環(huán)

python語言允許在一個循環(huán)體里面嵌入另一個循環(huán)。
具體的語法如下:
for循環(huán)嵌套語法

for iterating_var in sequence:
   for iterating_var in sequence:
      statements(s)
   statements(s)

while循環(huán)嵌套語法

while expression:
    while expression:
        statement(s)
    statement(s)

實例:

for num in range(10,20):
    for i in range(2,num):
        if num%i == 0:
            j = num/i
            print('%d 是一個合數(shù)' % num)
            break
    else:
        print('%d 是一個質(zhì)數(shù)' % num)

輸出:

10 是一個合數(shù)
11 是一個質(zhì)數(shù)
12 是一個合數(shù)
13 是一個質(zhì)數(shù)
14 是一個合數(shù)
15 是一個合數(shù)
16 是一個合數(shù)
17 是一個質(zhì)數(shù)
18 是一個合數(shù)
19 是一個質(zhì)數(shù)

案例:打印九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print('{}*{}={}\t'.format(i,j,i*j),end='')
    print()

輸出:

1*1=1   
2*1=2   2*2=4   
3*1=3   3*2=6   3*3=9   
4*1=4   4*2=8   4*3=12  4*4=16  
5*1=5   5*2=10  5*3=15  5*4=20  5*5=25  
6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  
7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49  
8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64  
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81

1.3.隨機(jī)數(shù)的處理

  • python中,要使用隨機(jī)數(shù),首先需要導(dǎo)入隨機(jī)數(shù)的模塊--“工具包”
import random
  • 導(dǎo)入模塊后,可以直接在模塊名稱后面敲一個.,會提示該模塊中包含的所有函數(shù)
  • random.randint(a,b),返回[a,b=]之間的整數(shù),包含a和b
    例如:
random.randint(12,20)  #  生成的隨機(jī)數(shù)n:12 <= n <= 20
random.randint(20,20)  #  結(jié)果永遠(yuǎn)是20
random.randint(20,10)  #  該語句是錯誤的,下限必須小于上限

綜合練習(xí)--猜數(shù)字
計算機(jī)要求用戶輸入數(shù)值范圍的最小值和最大值。計算機(jī)隨后“思考”出在這個范圍之內(nèi)的一個隨機(jī)數(shù),并且重復(fù)地要求用戶猜測這個數(shù),直到用戶猜對了。在用戶每次進(jìn)行猜測之后,計算機(jī)都會給出一個提示,并且會在這個過程的最后顯示出總的猜測次數(shù)。這個程序包含了幾種類型的我們學(xué)過的 Python 語句,例如,輸入語句、輸出語句、賦值語句、循環(huán)和條件語句。
可能的游戲過程如下:

Enter the smaller number:1
Enter the larger number:20
Enter your guess:5
Too small
Enter your guess:9
Too small
Enter your guess:15
Too small
Enter your guess:17
Too large
Enter your guess:16
You've got it in 5 tries!

程序如下:

import random

smaller = int(input("Enter the smaller number: "))
larger = int(input("Enter the larger number: "))
myNumber = random.randint(smaller, larger)
count = 0
while True:
    count += 1
    userNumber = int(input("Enter your guess: "))
    if userNumber < myNumber:
        print("Too small")
    elif userNumber > myNumber:
        print("Too large")
    else:
        print("You've got it in", count, "tries!")
        break

輸出:

Enter the smaller number: 1
Enter the larger number: 20
Enter your guess: 5
Too small
Enter your guess: 10
Too small
Enter your guess: 15
Too large
Enter your guess: 13
Too large
Enter your guess: 11
Too small
Enter your guess: 12
You've got it in 6 tries!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容