Python之条件、循环语句

时间:2022-12-13 12:05:24

1、条件语句

#语法:
if <条件判断1>:
    <执行1> 
elif <条件判断2>:
    <执行2> 
elif <条件判断3>:
    <执行3> 
else:
    <执行4>

if 语句执行有个特点,它是从上往下判断,如果在某个判断上是 True,把该判断对应的语句执行后,就忽略掉剩下的 elif 和 else

当 if 有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。

逻辑运算符:
True、False
or、andnot
例:if (num >= 0 and num <= 5) or (num >= 10 and num <= 15)
==、>、<、>=、<=、!=、<>


2、循环语句

for 循环

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

语法1:
for 条件
    <执行>

语法2:
for 条件
    <执行>
else
    <执行>
'''
for 中的语句和普通的没有区别
else 中的语句会在循环正常执行完
(即 for 不是通过 break 跳出而中断的)的情况下执行
while … else 也是一样。
'''

例子:

# 例1
for letter in 'Python':  # 第一个实例
    print('当前字母 :', letter)

fruits = ['banana', 'apple', 'mango']
for fruit in fruits:  # 第二个实例
    print('当前水果 :', fruit)

'''
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
当前水果 : banana
当前水果 : apple
当前水果 : mango
'''

# 例2
_user = 'hjc'
_pass = '123'
for i in range(4):
    username = input("username:")
    password = input("password:")
    if username == _user and password == _pass:
        print("welcome...", username)
        break
    else:
        print("invalid username or password")
else:  # 只要上面的 for 循环执行完毕,才执行 else 下的内容
    print("too many times retries")

# 例3
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
    print('当前水果 :', fruits[index])



# 例4
for num in range(1, 6):
    print(num)
else:
    print('done')
'''
1
2
3
4
5
done
'''


while 循环

语法1:只要条件满足,就不断循环,条件不满足时退出循环。
while 判断条件:
    执行语句。。。

语法2:只要条件满足,就不断循环,条件不满足时执行 else: 下的语句。
while 判断条件:
    执行语句。。。
else:
    执行语句。。。
sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)
# 在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。


3、循环控制语句

break

表示跳出循环的层数,如果省略n表示跳出整个循环

例1:
for letter in 'Python':
    # First Example
    if letter == 'h':
        break
print('Current Letter :', letter)
# Current Letter : h


例2:
var = 10  
while var > 0:
    print('Current variable value :', var)
    var = var - 1
    if var == 5:
        break
'''
Current variable value : 10
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
'''


continue

表示退到第n层继续循环,如果省略n表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环

# 第一个实例
for letter in 'Python':  
    if letter == 'h':
        continue
    print('当前字母 :', letter)

'''
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : o
当前字母 : n
'''


# 第二个实例
var = 10  
while var > 0:
    var = var - 1
    if var == 5:
        continue
    print('当前变量值 :', var)
'''
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
'''


pass

不做任何事情,只起到占位的作用

for letter in 'Python':
    if letter == 'h':
        pass
        print('这是 pass 块')
    print('当前字母 :', letter)

'''
当前字母 : P
当前字母 : y
当前字母 : t
这是 pass 块
当前字母 : h
当前字母 : o
当前字母 : n
'''




4、条件语句练习

题1:

# 提示输入用户名和密码
# 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX!

import getpass
name = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')
if name == "alex" and pwd == "cmd":
    print("欢迎,alex!")
else:
    print("用户名和密码错误")

题2:

# 根据用户输入内容打印其权限
# alex --> 超级管理员
# eric --> 普通管理员
# tony,rain --> 业务主管
# 其他 --> 普通用户
name = input('请输入用户名:')
if name == "alex":
    print("超级管理员")
elif name == "eric":
    print("普通管理员")
elif name == "tony" or name == "rain":
    print("业务主管")
else:
    print("普通用户")

题3:

# 猜年龄
age_of_princal = 56
guess_age = input("your input:")
if guess_age.isdigit():
    guess_age = int(guess_age)
    if guess_age == age_of_princal:
        print("yes")
    elif guess_age > age_of_princal:
        print("you input is large")
    else:
        print("you input is smaller")
else:
    print("you input is no num")


5、循环语句练习

a.使用while循环实现辅出2-3+4-5+6…+100的和
count = 1
s = 0
while count <= 10:
    if count % 2 == 0:
        s += count
    else:
        s -= count
    count += 1
print(s)



b.使用while循环实现输出1,2,3,4,5,7,8,9,11,12
count = 1
while count <= 10:
    if count == 6 or count == 10:
        pass
    else:
        print(count)
    count += 1



c.使用while循环输出10-5,从大到小,如10,9,8…,到5时再从0循环输出到5然后结束
count = 10
while count >= 5:
    print(count)
    count -= 1
    if count == 4:
        count1 = 0
        while count1 <= 5:
            print(count1)
            count1 += 1


d.使用while循环实现输出1-100内的所有奇数
e.使用while循环实现输出1-100内的所有偶数

count = 10
while count <= 10:
    if count % 2 != 0:
        print(count)
    count += 1