6.1_3 Python3.x入门 P3 【基础】流程语句【循环结构】

相关链接

  • 目录
  • Mac M1 Python环境搭建
  • Python3.x入门 P1 【基础】注释、标识符、变量、数据类型
  • Python3.x入门 P2 【基础】运算符
  • Python3.x入门 P3 【基础】流程语句【循环结构】
  • Python3.x入门 P4 【基础】可变序列(列表list、字典dict、集合set)
  • Python3.x入门 P5 【基础】不可变序列(元组tuple、字符串str)

简介

"""
 @author GroupiesM
 @date 2022/4/27 15:44
 @introduction
"""
 任何简单或复杂的算法都可以由顺序结构、选择结构、循环结构组合而成
     顺序结构(默认就是顺序结构)
     选择结构:if语句
     循环结构:while语句,for-in语句

一、顺序结构(略)

"""
 @author GroupiesM
 @date 2022/4/27 16:05
 @introduction 
"""

二、选择结构

2.1 if、elif、else选择结构

"""
 @author GroupiesM
 @date 2022/4/27 16:05
 @introduction

     if 条件表达式:
        条件执行体
    else
"""
money = 1000;  # 余额
tips = "当前余额为 " + str(money) + " 元,请输入取款金额:"
get = int(input(tips))  # 取款金额
b = True
# 判断余额是否充足
if get < 0:
    print("取款金额不能为负")
elif get < money:
    print("取款成功,余额为" + str(money - get), "元。")
else:
    print("余额不足。")
"""
当前余额为 1000 元,请输入取款金额:-5
取款金额不能为负
取款成功,余额为1005 元。
"""
"""
当前余额为 1000 元,请输入取款金额:123
取款成功,余额为877 元。
"""
"""
当前余额为 1000 元,请输入取款金额:1234
余额不足。
"""

2.2 选择结构嵌套

"""
 @author GroupiesM
 @date 2022/4/27 16:26
 @introduction
 业务逻辑:如果是会员,大于200打1折,100-200打5折,低于100不打折
         如果不是会员,大于200打9折,低于200不打折
"""

isMember = input("是会员吗?y/n:")
if isMember not in ('y','n'):
    print("输入错误")
    quit()

money = int(input("购物金额:"))
if isMember == 'y':
    if money > 200:
        money *= 0.1
    elif money > 100 & money < 200 :
        money *= 0.5
if isMember == 'n':
    if money > 200:
        money *= 0.9

print("实际付款金额为:",str(money))
"""
是会员吗?y/n:y
购物金额:2000
付款金额为: 200.0
"""
"""
是会员吗?y/n:n
购物金额:150
实际付款金额为: 150
"""

三、条件表达式(三元运算符)

"""
 @author GroupiesM
 @date 2022/4/27 16:39
 @introduction 模拟用户登录

 条件表达式类似于Java中使用的三元运算符,仅有if、else两种结果,不支持其他elif分支条件
"""

uname = input("用户名:")
pwd = input("密码:")

# 选择结构
if uname == "Groupies" and pwd =="123":
    print("欢迎登陆!")
else:
    print("用户名或密码输入错误!")

print('-----')

# 条件表达式
print("欢迎登陆!" if uname == "stenven" and pwd =="123" else "用户名或密码输入错误!")

四、循环结构

4.1 rang() 循环 - 生成list

"""
 @author GroupiesM
 @date 2022/4/27 16:55
 @introduction
    用于创建一个整数序列
    创建range对象的三种方式
        1)range(stop):创建[0,stop)之间的整数序列,步长为1
        2)range(start,stop):创建[start,stop)之间的整数序列,步长为1
        3)range(start,stop,step):创建[start,stop)之间的整数序列,步长为step
    返回一个迭代器对象
    range优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,
            因为仅仅需要存储start,stop和step,只有当用到时才会计算
    int与not in判断是否存在指定整数
"""
"""range(stop)"""
r = range(10)
l = list(r)  # 用于查看range对象中的整数序列
print(l)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

"""range(start,stop,step)"""
r = range(1, 50, 5)
l = list(r)
print(l)  # [1, 6, 11, 16, 21, 26, 31, 36, 41, 46]

"""int与not in判断是否存在指定整数"""
print(6 in r) # True
print(6 in l) # True
print(8 in r) # False
print(6 not in l) # False

4.2 while循环

"""
 @author GroupiesM
 @date 2022/4/27 17:08
 @introduction
    循环分类 while    for-in
    语法:
        while 条件表达式:
            条件执行体(循环体)

    选择结构的if与循环while的区别:
        if判断一次,条件True执行一次
        while判断n+1次,条件为True执行n次
"""
a: int = 1

while a < 5:
    print(a) # 1 2 3 4
    a += 1

4.3 for循环

"""
 @author GroupiesM
 @date 2022/4/27 17:16
 @introduction
    for-in循环:
        in表达从(字符串、序列等)中依次取值,又称为遍历
        for-in便利的对象必须是可迭代对象

    for-in语法结构:
        for 自定义的变量 in 可迭代对象:
            循环体

    【可迭代对象】:字符串、序列等

    循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
"""
print("-------for-in String--------")
for i in "python":
    print(i)
"""
p
y
t
h
o
n
"""
print("-------for-in range()--------")
for i in range(2, 5, 1):
    print(i)
"""
2
3
4
"""
print("-------for-in nothing--------")
for i in range(3):
    print("hello world")
"""
hello world
hello world
hello world
"""
print("-------for-in 1-100偶数求和--------")
sum = 0;
for i in range(101):
    if i % 2 == 0:
        sum += i
print(sum)
"""2550"""

五、pass、break、continue


5.1 pass 跳过

  • 适用于:选择结构、循环结构
"""
 @author GroupiesM
 @date 2022/4/27 16:44
 @introduction
    pass语句:什么都不做,只是一个占位符,用在语法上需要语句的地方
             并不会跳过,pass语句前面、后面的执行逻辑
    when:先搭建语法结构,还没想好代码怎么写
    where:1)if的条件执行体、2)for-in的循环体、3)函数的函数体
"""

answer = input("是会员吗?y/n")
if answer == 'y':
    print("123")
    pass
    print("321")
else:
    pass	# 这里如果什么都不写是不能通过编译的
"""
是会员吗?y/n y
123
321
"""

5.2 break 跳出循环

5.2.1 while - break

  • 适用于:循环结构
"""
 @author GroupiesM
 @date 2022/4/27 17:34
 @introduction
     break语句:用于结束循环结构,通常与分支结构if一起使用
"""

# 键盘输入密码,最多3次,如果正确,提示登录成功,超过3次提示账户已锁定
password = "python"
i = 0;

while i < 3:
    if input("请输入密码:\n") == "python":
        print("密码正确,登陆成功")
        break
    elif i != 2:
        print("密码错误,剩余尝试次数:", 2 - i)
        i += 1
    else:
        print("密码错误,账户已锁定")
        break
"""
请输入密码:
python
密码正确,登陆成功
"""
"""
请输入密码:
1
密码错误,剩余尝试次数: 2
请输入密码:
2
密码错误,剩余尝试次数: 1
请输入密码:
3
密码错误,账户已锁定
"""

5.2.2 for - break

"""
 @author GroupiesM
 @date 2022/4/27 17:25
 @introduction
    break语句:用于结束循环结构,通常与分支结构if一起使用
"""
# 键盘输入密码,最多3次,如果正确,提示登录成功,超过3次提示账户已锁定
password = "python"

for i in range(3):
    if input("请输入密码:\n") == "python":
        print("密码正确,登陆成功")
        break
    elif i != 2:
        print("密码错误,剩余尝试次数:", 2 - i)
    else:
        print("密码错误,账户已锁定")

5.2.3 嵌套循环 - break (九九乘法表)

"""
 @author GroupiesM
 @date 2022/4/27 17:51
 @introduction
"""
'''实现99乘法表'''
for i in range(0, 10, 1):
    for j in range(1, i + 1, 1):
        if j > i:
            break
        print(str(i), "*", str(j), "=", str(i * j), end="\t")
    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	
'''

5.3 continue 进入下一次循环

  • 适用于:循环结构

5.3.1 while - continue

"""
 @author GroupiesM
 @date 2022/4/27 17:36
 @introduction
    continue语句:用于结束当前循环,进入下一次循环,通常预分支if一起使用
"""
'''输出1-20之间所有5的倍数'''
i: int = 1;

while i < 20:
    i += 1
    if i % 5 != 0: continue
    print(i)
"""
5
10
15
20
"""

5.3.2 for - continue

"""
 @author GroupiesM
 @date 2022/4/27 17:37
 @introduction
    continue语句:用于结束当前循环,进入下一次循环,通常预分支if一起使用
"""
'''输出1-20之间所有5的倍数'''
i: int = 1;

for i in range(20):
    if i % 5 != 0: continue
    print(i)
"""
5
10
15
20
"""

5.3.3 嵌套循环 - continue

"""
 @author GroupiesM
 @date 2022/4/28 09:14
 @introduction
    嵌套循环中的break和continue只用于控制本层循环
    else -> if ... else
         -> while ... else
         -> for ... else
"""
for i in range(1, 5):
    if (i % 2 == 0):
        continue
    else:
        print(i)
else:
    print("abc")
"""
1
3
abc
"""

22/06/27

M

你可能感兴趣的:(六,python,python)