python-if条件判断与while/for循环

2019-09-26 12:40:36 浏览数 (1)

条件判断if

让计算机像人一样,能判断是非对错,根据条件做一些事情。

if

代码语言:javascript复制
'''
------ if代码结构:-------
if 条件:
    代码体

tips:同一缩进范围内的代码被视作同一代码体,python官方推荐python缩进一次为4个空格
'''
is_happy = True
if is_happy:
    print("Nice to meet you!")
# Nice to meet you!

if else

代码语言:javascript复制
 1 '''
 2 ------ if代码结构:-------
 3 if 条件:
 4     代码体
 5 else:
 6     代码体
 7 
 8 tips:当不满足if 的条件时就会执行到else ,运行else 中的代码
 9 
10 '''
11 is_happy = False
12 if is_happy:
13     print("Nice to meet you!")
14 else:
15     print("Today is a bad day!")
16 # Today is a bad day!

if elif else

代码语言:javascript复制
 1 '''
 2 ------ if代码结构:-------
 3 if 条件:
 4     代码体
 5 elif 条件:
 6     代码体
 7 else:
 8     代码体
 9 
10 tips:当不满足if 的条件时就会执行到下一个elif....如果接着的都不满足,那最后执行到else 
11 
12 '''
13 math_score = 99
14 if math_score >= 90:
15     print("优秀")
16 elif math_score >= 80:
17     print("良好")
18 elif math_score >= 60:
19     print("一般")
20 else:
21     print("很遗憾,未及格!")
22 # 优秀

if 嵌套

代码语言:javascript复制
# if可以多级嵌套,注意缩进
math_score = 99
if math_score >= 90:
    if math_score > 100:
        print("您的输入有误,请输入正确的分数(0~100)!")
    else:
        print("优秀")

循环

使用循环来替代重复往返的动作

while循环

while

代码语言:javascript复制
'''
while 条件:
    代码体
tips:不要忘了 条件后面的 :
      代码体需要缩进4个空格
'''
i = 1
while i < 4:
    print(i)
    i  = 1
# 1
# 2
# 3

死循环

代码语言:javascript复制
# 死循环,使CPU 一直处于运算状态
i = 1
while True:
    i  = 1

# 虽然也是 while True 但因其要等待用户输入信息才进入下一轮循环,并非死循环
while True:
    input("请输入信息")

while else

代码语言:javascript复制
 1 # ---------------对于while else 结构:--------------------
 2 # 当while 循环正常循环(执行)完毕没有遇到break 后会进入else 中
 3 
 4 i = 1
 5 while i < 4:
 6     if i == 2:
 7         i  = 1
 8         continue
 9     print(i)
10     i  = 1
11 else:
12     print("while 循环正常执行结束,没有遇到break 提前退出")
13 
14 # 1
15 # 3
16 # while 循环正常执行结束,没有遇到break 提前退出
17 
18 # 遇到break 退出循环,则不会进入到else 中
19 i = 1
20 while i < 4:
21     if i == 2:
22         i  = 1
23         break
24     print(i)
25     i  = 1
26 else:
27     print("while 循环正常执行结束,没有遇到break 提前退出")
28 # 1

break:退出本层循环

continue:结束本次循环,直接进入下一次循环

代码语言:javascript复制
 1 i = 1
 2 while i < 6:
 3     if i == 3:
 4         i  = 1
 5         break
 6     print(i)
 7     i  = 1
 8 print(i)
 9 # 1
10 # 2
11 # 4
12 # 执行到i == 3的if 语句时就退出了整个循环, 后面的i 只到了4 (i == 3 的时候执行了if i == 3 中的 i  = 1)
13 
14 i = 1
15 while i < 6:
16     if i == 3:
17         i  = 1
18         continue
19     print(i)
20     i  = 1
21 print(i)
22 # 1
23 # 2
24 # 4
25 # 5
26 # 6
27 # 执行到i == 3的if 语句时就退出了本次循环,直接重新进入到了 while i < 6 这里开始下一次循环

for循环

for

代码语言:javascript复制
'''
------for代码结构:-------
for 条件:
    代码体

tips:  for的末尾要写 :
        不要漏了代码体的缩进(4各个空格)
'''
for i in range(1, 4):
    print(i)
# 1
# 2
# 3

range()函数

代码语言:javascript复制
'''
------- range()函数 ---------
python 2.x: range()   xrange()
    调用range()函数会生成一个列表
    调用xrange()函数会生成一个迭代器对象,只有在使用的时候才会取出里面的对象
python 3.x: range()
    同python 2.x 中的 xrange()函数
'''

break、continue: 与while 循环中一致

for else:当for 循环正常执行结束没有遇到break 时会进入 else

代码语言:javascript复制
# ---------------对于for else 结构:--------------------
#   当for 循环正常循环(执行)完毕没有遇到break 后会进入else 中

for i in range(1, 4):
    if i == 2:
        continue
    print(i)
else:
    print("for 循环正常执行结束,没有遇到break 提前退出")

# 1
# 3
# for 循环正常执行结束,没有遇到break 提前退出

# 遇到break 退出循环,则不会进入到else 中
for i in range(1, 4):
    if i == 2:
        break
    print(i)
else:
    print("for 循环正常执行结束,没有遇到break 提前退出")
# 1

多重循环(循环嵌套)

代码语言:javascript复制
 1 # 退出双层循环的while循环嵌套
 2 user_db = 'abc'
 3 pwd_db = '123'
 4 flag = True
 5 while flag:
 6     inp_user = input('username>>>: ')
 7     inp_pwd = input('password>>>: ')
 8     if inp_user == user_db and pwd_db == inp_pwd:
 9         print('login successful')
10         while flag:
11             cmd = input('请输入你需要的命令:')
12             if cmd == 'q':
13                 flag = False
14                 break
15             print('%s功能执行'%cmd)
16     else:
17         print('username or password error, please input again!')
18 print('退出了while循环')

  技巧:定义标志位 flag 跳出多重循环

小案例

九九乘法表

代码语言:javascript复制
for i in range(1, 10):
    for j in range(1, i 1):
        print("%d * %d = -t" %(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    

打印指定层数金字塔

代码语言:javascript复制
num = int(input("输入层数 >>>:"))
level = 0
for level in range(1, num   1):
    for i in range(num - level):
        print(" ", end='')
    for j in range(2 * level - 1):
        print("*", end='')
    print()
#   输入5
#     *
#    ***
#   *****
#  *******
# *********

0 人点赞