流程控制

流程控制

img

  • 可以通过控制语句实现更丰富的逻辑以及更强大的功能。

  • 几乎所有编程语言都有流程控制语句,功能也都基本相似。

  • 其流程控制方式有

    • 顺序结构
    • 分支结构
    • 循环结构
  • 这里最简单最常用的就是顺序结构,即语句从上至下一一执行。

  • 序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。

    • 可以通过控制语句实现更丰富的逻辑以及更强大的功能。
    • 几乎所有编程语言都有流程控制语句,功能也都基本相似。
  • 其流程控制方式有

    • 顺序结构
    • 分支结构
    • 循环结构
  • 这里最简单最常用的就是顺序结构,即语句从上至下一一执行。

  • 序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。

    • 可以通过控制语句实现更丰富的逻辑以及更强大的功能。
    • 几乎所有编程语言都有流程控制语句,功能也都基本相似。
  • 其流程控制方式有

    • 顺序结构
    • 分支结构
    • 循环结构

【1】顺序结构

  • 这里最简单最常用的就是顺序结构,即语句从上至下一一执行。

img

print("1")
print("2")
print("3") #按顺序一个一个执行

【2】分支结构

  • 顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。
    • 对于要先做判断再选择的问题就要使用分支结构。

(1)单分支结构

img

#单分支: if

username = input('输入用户名:')

if username == 'dhy':
    print(f'欢迎你光临')

(2)双分支结构 if ----else

  • 顾名思义,二条分支二选一执行!img
username = input('输入用户名:')

if username == 'dhy':
    print('欢迎你光临')
else:
    print('进入失败')

(3)多分支语句 if--elif---else

多分支即从比双分支更多的分支选择一支执行

img

score = input('请输入学生成绩:>>>>>')
#强转数据类型
score=int(score)
if score > 100:
    print(f'试卷只有100分')
elif score>=90:
    print('优秀')
elif score>80:
    print('合格')
elif score>70:
    print('良好')
elif score>=60:
    print('及格')
else:
    print('不及格')

练习题1

# 用户名 密码
# 两个输入框 --- > 用户名和密码
# ---> 用户名和密码是否正确
# 正确 :登陆成功
# 失败 : 再输一次
# 在失败 : 登录失败
# 用户名 密码
username = 'dhy'
password = '0703'
# 两个输入框 --- > 用户名和密码
username_input = input('请输入你的用户名:>>>>>')
password_input = input('请输入你的密码:>>>>>')
# ---> 用户名和密码是否正确
if username_input == username and password_input == password:
    # 正确 :登陆成功
    print(f'{username}登录成功')
# 失败 : 再输一次
else:
    print('再给你一次机会')
    username_input = input('请输入你的用户名:>>>>>')
    password_input = input('请输入你的密码:>>>>>')
    if username_input == username and password_input == password:
        print(f'{username}登录成功')
    # 在失败 : 登录失败
    else:
        print("登陆失败")

练习题2

 定义一个列表 [用户名,密码]
# 两个输入框 --- > 用户名和密码
# ---> 用户名和密码是否正确
# 正确 :登陆成功
# 失败 : 再输一次
# 在失败 : 登录失败
username,password = ['dhy','0703']

# 两个输入框 --- > 用户名和密码
username_input = input('请输入你的用户名:>>>>>')
password_input = input('请输入你的密码:>>>>>')
# ---> 用户名和密码是否正确
if username_input == username and password_input == password:
    # 正确 :登陆成功
    print(f'{username}登录成功')
# 失败 : 再输一次
else:
    username_input = input('请输入你的用户名:>>>>>')
    password_input = input('请输入你的密码:>>>>>')
    if username_input == username and password_input == password:
        print(f'{username}登录成功')
    # 在失败 : 登录失败
    else:
        print("登陆失败")

练习题3

# 定义一个字典 {'key':'value'} ---> 多用户登录功能
# 两个输入框 --- > 用户名和密码
# ---> 用户名和密码是否正确
# 正确 :登陆成功
# 失败 : 再输一次
# 再失败 : 登录失败
# 【1】定义一个字典 ---> 又保存了我们的正确的登录信息
# {'dream':"521","hope":"369"} ---> 字典取值 --- get()
# {"dream":["dream","521"]} ---> 把列表取出来 --> 在进行解压赋值
# 【2】两个输入框 ---> 输入用户名和密码
# 字符串 ---> 字典中的键 ---> 直接根据键取值 --->  成员运算

# 【3】多用户登录
# 【3.1】有一个信息字典
# 先判断有没有键 ---
# 没有键
# 去字典中取出密码
user_pwd = {'dhy':'0703','lqq':'0313'}
user_data = {'dhy':{'age':20,'hobby':'travel','height':172,
                    'lqq':{'age':22,'hobby':'sing','height':168}}}
username_input = input('请输入你的用户名:>>>>>')
password_input = input('请输入你的密码:>>>>>')

if username_input not in user_pwd:
    print(f'{username_input}查不到这个人')

if password_input == user_pwd.get(username_input):
    print(f'''
    当前用户:>>>>>{username_input}
    当前年龄:>>>>>{user_data[username_input]['age']}
    当前爱好:>>>>>{user_data[username_input]['hobby']}
    当前身高:>>>>>{user_data[username_input]['height']}
    
    ''')
else:
    print('再给你次机会')
    username_input = input('请输入你的用户名:>>>>>')
    password_input = input('请输入你的密码:>>>>>')

    if username_input not in user_pwd:
        print(f'{username_input}查不到这个人')

    if password_input == user_pwd.get(username_input):
        print(f'''
        当前用户:>>>>>{username_input}
        当前年龄:>>>>>{user_data[username_input]['age']}
        当前爱好:>>>>>{user_data[username_input]['hobby']}
        当前身高:>>>>>{user_data[username_input]['height']}

        ''')
    else:
        print('登陆失败')

【3】循环结构

  • 在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。
    • 一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。
  • Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。

while循环

img

# while+condition(条件)
# 条件为真时就会一直执行while内的代码体
# 条件为假的时候就会终止循环执行代码体
#定义起始数字
# count = 0
# while count < 5:
#     print(count)
#     count += 1

# count = 3 的时候不打印3打印其他数字
# count = 0
# while count < 5:
#     count += 1
#     if count == 3:
#         print(f'已经跳过了{count}')
#         continue
#     print(count)

#当count=4时结束循环
# count = 0
# tag =True
# while count < 10 and tag:
#     count += 1
#     if count == 3:
#         print(f'已经跳过了{count}')
#         #退出当次循环
#         continue
#     if count ==4:
#         print(f'遇到一点小问题')
#         tag=False
#     if count==8:
#         #退出当前while循环
#         break
#     print(count)

练习

user_pwd = {'dhy':"0703"}

count=3
while count>0:
    count-=1
    username_input = input('请输入用户名:>>>>>')
    password_input = input('请输入密码:>>>>>')
    if username_input not in user_pwd:
        print(f'此用户不存在,还剩下{count}次机会')
        if count == 0:
            continue_input = input('你还要继续尝试嘛(y/n)')
            if continue_input == 'y':
                count = 3
            else:
                print('谢谢使用')
                break
        continue
    if password_input != user_pwd.get(username_input):
        print(f'用户名或密码错误,你还有{count}次机会')
        continue
    else:
        print('登录成功')
        break

for循环

  • for 是循环的关键字。
  • variable 是循环变量,它会在每次循环中取 sequence 中的一个值。
  • sequence 是一个序列,可以是列表、元组、字符串等。
num_list = [1,2,3,4,5,6]
for i in num_list:
    print(i)

name ='dhy'
for i in name:
    print(i)

num_tuple = (1,2,3,4)
for i in num_tuple:
    print(i)

name_dict = {'name':'dhy',"age":'20'}
for i in name_dict:
    print(i)
    print(name_dict[i])

range关键字

#range关键字

#顾头不顾尾 ---1 取不得5 只能取得4
# for i in range(1,5):
#     print(i)
#
# for i in range(1,10,2):
#     print(i)
#
# for i in range(10):
#     print(i)

num_list = []
for i in range(1,16):
    num_list.append(i)
print(num_list) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
print(random.choice([i for i in range(1,16)]))
posted @ 2023-12-13 19:40  dhyuannn  阅读(22)  评论(0)    收藏  举报