python流程控制if判斷與循環(for、while)

流程控制if判斷與循環for、while

1、if判斷

1.1單分支

# 單分支

# if通常用於判斷/選擇的場景
# 90以上優秀
score = 95
if score > 90:
    print('優秀')

1.2雙分支(1)

# 雙分支

# if...else
# 90以上優秀,90一下良好
score = 95
# if score > 90:
#     print('優秀')
# else:
#     print('良好')

1.2雙分支(2)

score = 75
# print('優秀') if score > 90 else print('良好')  
# 單分支沒有,多分支也沒有

#結果一  條件  結果二

1.3多分支(1)

## if...elif...elif...else
## 90以上優秀,90-70良好,70如下不及格
# score = 95
# if score > 90:
#     print('優秀')
# elif score > 70:
#     print('良好')
# else:
#     print('及格')

1.3多分支(2)

## if...if...if...if
## 90以上優秀,90-70良好,70如下不及格
score = 95
if score > 90:
    print('優秀')
if score > 70 and score < 90:
    print('良好')
if score < 60:
    print('及格')

2、while循環

for循環的循環次數受限於容器類型的長度,而while循環的循環次數須要本身控制。for循環也能夠按照索引取值。code

2.1 while循環

while循環又稱爲條件循環,所謂的循環就是重複作某件事,固然要給必定的條件限制,否則就永遠的循環下去了,成爲了死循環。對象

  1. while循環的格式
while 條件:
code 1
code 2
code 3
...
#能夠這樣理解
'''
while(當) <條件>:
    <須要進行重複的代碼塊>  # 當條件成立時會進行運行,結束完代碼塊後會再一次判斷條件,成立再運行,運行完再判斷條件,%
'''

如:
while True:
    print('*1'*100)
    print('是否是傻'*10)
#其實這是一個死循環,一直輸出到電腦報廢,請謹慎使用
# 在實現登錄功能的時候可以使用,一直到登錄成功
while True:
    name = 'chen'
    pwd = '123'
    inp_name =input('name:')
    inp_pwd = input('pwd:')
    if name==inp_name and pwd == inp_pwd:
        print('登錄成功')
    else:
        print('你咋那麼笨呢')
    ##其實這仍是一個死循環,可是存在阻塞

其實這仍是一個死循環,可是存在阻塞

2.2while + break

break就是循環限制的一種哦,意思是直接退出循環blog

# 能夠這樣理解
'''

while(當) <條件>:
    <須要進行重複的代碼塊>  # 當條件成立時會進行運行,結束完代碼塊後會再一次判斷條件,成立再運行,運行完再判斷條件,%
    break  # 遇到break後終止while循環
'''
while True:
    print(1)
    print(2)
    break
    print(3)
#輸出:
1
2
# 在實現登錄功能的時候可以使用,一直到登錄成功,後退出
while True:
    name = 'chen'
    pwd = '123'
    inp_name =input('name:')
    inp_pwd = input('pwd:')
    if name==inp_name and pwd == inp_pwd:
        print('登錄成功')
        break
    else:
        print('你咋那麼笨呢')

print('啊哈,不循環了哦')

2.3while + continue

continue的意思終止本次循環,直接進入下一次循環中索引

n = 1
while n < 4:
    print(n)
    n += 1
#輸出
1
2
3
n = 1
while n < 10:
    if n == 8:
        n += 1   # 若是註釋這一行,則會進入死循環
        continue
    print(n)
    n += 1
#輸出
1
2
3
4
5
6
7
9

==注意:continue不能放在程序的最後一步執行,注意,不是最後一行==字符串

2.4 while 循環嵌套

退出一層循環input

#退出內層循環的while循環嵌套
while True:
    name = 'chen'
    pwd = '123'
    inp_name = input('name:')
    inp_pwd = input('pwd:')
    if inp_name == name and inp_pwd == pwd:
        print('successful')
        while True:
            cmd = input('請輸入命令')
            if cmd == 'q':
                print(f'{cmd}功能執行')
                break
    else:
        print('不對啊')
print('循環退出')

​ 退出雙重循環cmd

#退出內層循環的while循環嵌套
while True:
    name = 'chen'
    pwd = '123'
    inp_name = input('name:')
    inp_pwd = input('pwd:')
    if inp_name == name and inp_pwd == pwd:
        print('successful')
        while True:
            cmd = input('請輸入命令')
            if cmd == 'q':
                break
            print(f'{cmd}功能執行')
        break
    else:
        print('不對啊')
print('循環退出')

2.5tag控制循環退出

tag = True
while tag:
    name = 'chen'
    pwd = '123'
    inp_name = input('name:')
    inp_pwd = input('pwd:')
    if inp_name == name and inp_pwd == pwd:
        print('successful')
        while tag:
            cmd = input('請輸入命令')
            if cmd == 'q':
                tag = False
            print(f'{cmd}功能執行')
    else:
        print('不對啊')
print('循環退出')

2.6while+else

else會在while沒有被break的時候纔會執行else中的代碼it

n = 1
while n<3
    print(n)
    n += 1
else:
    print('退出')
#輸出:
1
2
退出

3、for循環

3.1for循環的語法

簡單的來講for循環更像是遍歷,for循環能夠遍歷任何序列的項目,如一個列表,字典或者一個字符串。for循環的循環次數受限於容器類型的長度,for循環也能夠按照索引取值。for循環

name = ['chen','python','nick','shanghai']
for i in name:
    print(i)
    
#輸出:
chen
python
nick
shanghai

print(name[1])
#輸出:
python

3.2for + break

for 循環被直接調出本層循環

name = ['chen','python','nick','shanghai']
for i in name:
    if i == 'python':
        break
    print(i)
#輸出:
chen

3.3 for+continue

for循環調出本次循環,進入下一次循環

name = ['chen','python','nick','shanghai']
for i in name:
    if i == 'python':
        continue
    print(i)
#輸出:
chen
nick
shanghai

3.4 for循環的嵌套

外層循環每一次,內層循環全部的。

for i in range(3):
    print("----------",i)
    for j in range(2):
        print("**********",j)
#輸出:
---------- 0
********** 0
********** 1
---------- 1
********** 0
********** 1
---------- 2
********** 0
********** 1

3.5 for+else

在沒有break觸發的時候執行else內部的代碼

name = ['chen','python','nick','shanghai']
for i in name:
    if i == 'python':
        continue
    print(i)
else:
    print('沒有了')
#輸出:
chen
nick
shanghai
沒有了

3.6 for循環實現loading

import time
print('Loading',end='')
for i in range(6):
    print(".",end='')
    time.sleep(0.2)

Loading......

4、for循環和while循環的區別

while:    
    1. 會進入死循環(不可控),儘可能少使用while循環    
    2. 世間萬物均可以做爲循環的對象
for:    
    1. 不會進入死循環(可控),之後儘可能使用for循環    
    2. 只對容器類數據類型+字符串循環(可迭代對象)
相關文章
相關標籤/搜索