【Python】(7)流程控制:顺序结构+选择语句(if、for、while)

2023-10-29

目录

一、程序的流程控制

1、顺序结构是基础

2、选择语句(if...else...)

2.1基本结构

        2.2小练习

        2.3分支语句(if的三元运算)

        3、循环语句(for...)

        3.1基础知识

         3.2关于else

        3.3小练习

        3.4range的用法

        3.5小练习

        4、循环语句(while)

二、练习

# 1、使用while循环 验证用户登录 最多重试3次

# 2、1234567 --》 1,234,567 从键盘接收用户输入的数,判断是不是数,然后对它进行千分位格式

 # 3、儿童弹珠游戏


一、程序的流程控制

任何算法(程序)都可以由顺序结构、选择结构、循环结构,这三种基本结构组成来实现,顺序结构是程序的基础

1、顺序结构是基础

顺序结构是按照线性顺序自上而下依次执行的一种运行方式

2、选择语句(if...else...)

2.1基本结构

else不是必须的

可以嵌套,根据缩进配套

if 18 <= age <100:
    print("年龄在18到100之间")
    if age < 60:
        print("祝您上网愉快")
    else:
        print("注意上网时间安排")
else:
    print("不能上网")

        2.2小练习

# 计算三角形的面积
# 对输入的边长进行判断
#    边长都大于0  --》条件不满足输出(边长小于0,输入不合法)
#    两边之和小于第三边  --》条件不满足输出(两边之和小于或等于等三边)
import math
a = int(input("请输入第一条边:"))
b = int(input("请输入第二条边:"))
c = int(input("请输入第三条边:"))
if a > 0 and b > 0 and c > 0:
    if a + b > c and b + c > a and a + c > b:
        p = (a + b + c) / 2
        s = math.sqrt(p * (p - a) * (p - b) * (p - c))
        print(f"三角形的面积为:{s}")
    else:
        print("两边之和小于或等于第三边")
else:
    print("边长小于0,输入不合法")

执行结果

======1
请输入第一条边:3
请输入第二条边:4
请输入第三条边:5
三角形的面积为:6.0
=====2
请输入第一条边:-1
请输入第二条边:2
请输入第三条边:3
边长小于0,输入不合法
====3
请输入第一条边:1
请输入第二条边:2
请输入第三条边:5
两边之和小于或等于第三边

        2.3分支语句(if的三元运算)

a = 10
b = 20
c = a if a > b else b

【练习1】

str1 = input("请输入一个字符串:")
# 1
a = "hello在字符串中" if "hello" in str1 else "hello不在字符串中"
print(a)
# 2
print("hello%s存在字符串中"%('' if 'hello' in str1 else '不'))

【练习2】

username = input("请输入用户名:")
password = input("请输入密码:")
print("登陆成功" if username == 'root' and password == '123456' else "登录失败")
# 执行结果1
请输入用户名:root
请输入密码:123
登录失败
# 执行结果2
请输入用户名:root
请输入密码:123456
登陆成功

        3、循环语句(for...)

        3.1基础知识

iterable 可迭代对象

continue和break的区别

# for循环
num = 0
for i in 'feng':
    num += 1
    if num == 2:
        # 退出本次循环,开启下一次循环
        continue
    print(f"第{num}个字符为:{i}")
    # if num == 3:
    #     # 退出当前循环
    #     break
else:
    print("for循环正常退出")
# 执行结果
第1个字符为:f
第3个字符为:n
第4个字符为:g
for循环正常退出

         3.2关于else

当正常结束for循环时,执行else。通过break退出不算正常退出

else可有可没有

# for循环
num = 0
for i in 'feng':
    num += 1
    if num == 2:
        # 退出本次循环,开启下一次循环
        continue
    print(f"第{num}个字符为:{i}")
    if num == 3:
        # 退出当前循环
        break
else:
    print("for循环正常退出")
# 执行结果
第1个字符为:f
第3个字符为:n

        3.3小练习

输入一个字符串,如果是大写字母就输出1,如果是小写字母就输出0,其他字符原样输出

str1 = ''
str2 = input("请输入一个字符串:")
for i in str2:
    if i.islower():
        str1 += '0'
    elif i.isupper():
        str1 += '1'
    else:
        str1 += i
else:
    print(str1)

        3.4range的用法

左闭右开

# range(3) -->0,1,2
# range(4,9) 左闭右开-->4,5,6,7,8
# range(4,9, 2) -->468
# for i in range(7):
#     print(i, end='')
# for i in range(4, 9):
#     print(i, end='')
# for i in range(4, 9, 2):
#     print(i, end='')

        3.5小练习

小练习===1

# 用户验证登录
# 登陆成功/失败都给予提示
# 最多可尝试3次密码
username = input("请输入用户名:")
if username == 'root':
    for i in range(3):
        password = input("请输入密码:")
        if password == '123456':
            print("登录成功")
            break
        elif i == 2:
            print("密码错误超过3次,用户登录失败")
        else:
            print("登录失败,还有%d次机会" % (2-i))
else:
    print("用户名不正确")

小练习===2

# 输入一个字符串,找出出现次数最多的字符
str1 = input("请输入一串字符:")
num = 0
result = ''
for i in str1:
    num1 = str1.count(i)
    if num1 > num:
        num = num1
        result = i
print("出现次数最多的字符是:", result)
print("出现次数为:", num)

小练习===3

# 猜数字
# 在程序内定义一个数字,让用户猜
# 检查用户输入的是否为数字
# 键盘接收用户输入,猜对或猜错都给出提示(大/小)
# 最多猜3次
# 给出用户最终猜的结果,及花了几次来猜
result = 19
num = 1
for i in range(3):
    userresult0 = input("请输入你猜测的数字(0-50):")
    if userresult0.isdigit():
        userresult = int(userresult0)
        if num <= 3:
            if userresult == result:
                print(f"恭喜你答对了!,猜测次数为{num}")
                break
            elif userresult > result:
                print(f"很遗憾你猜大了,还有{3-num}次机会")
                num += 1
            else:
                print(f"很遗憾你猜小了,还有{3 - num}次机会")
                num += 1
    else:
        print("输入不合法,请输入数字")
else:
        print("猜错次数超过3次,游戏结束")

        4、循环语句(while)

二、练习

# 1、使用while循环 验证用户登录 最多重试3次

username = input("请输入用户名:")
passwd = input("请输入密码:")
num = 3
while username != "root" or passwd != "123456":
    if num > 1:
        print(f"用户名或者密码错误,还剩{num - 1}次机会")
        username = input("请输入用户名:")
        passwd = input("请输入密码:")
        num -= 1
    else:
        print("重试超过3次,用户登录失败")
        break
else:
    print("登录成功")

# 2、1234567 --》 1,234,567 从键盘接收用户输入的数,判断是不是数,然后对它进行千分位格式

number = input("请输入一串数字:")
count = 0
result = ''
if number.isdigit():
    for i in number[::-1]:
        count += 1
        result = i + result
        if count % 3 == 0 and count != len(number):
            result = ',' + result
    else:
        print('千分位格式为:', result)
else:
    print("输入不合法,请输入数字")

--->第二种思路

 --->第三种思路

 # 3、儿童弹珠游戏

import random
light = ''
for i in range(12):
    light = light + str(random.randint(0, 1))
else:
    print("亮灯情况:", light)
hoodle = random.randint(1, 12)
print(f"你打到了第{hoodle}个灯")
num = 1
for i in light:
    if num == hoodle and i == '1':
        print("恭喜你赢了!")
        break
    num += 1
else:
    print("很遗憾你输了~")

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python】(7)流程控制:顺序结构+选择语句(if、for、while) 的相关文章

随机推荐