相关链接
"""
@author GroupiesM
@date 2022/4/27 15:44
@introduction
"""
任何简单或复杂的算法都可以由顺序结构、选择结构、循环结构组合而成
顺序结构(默认就是顺序结构)
选择结构:if语句
循环结构:while语句,for-in语句
"""
@author GroupiesM
@date 2022/4/27 16:05
@introduction
"""
"""
@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
余额不足。
"""
"""
@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 "用户名或密码输入错误!")
"""
@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
"""
@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
"""
@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"""
"""
@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
"""
"""
@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
密码错误,账户已锁定
"""
"""
@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("密码错误,账户已锁定")
"""
@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
'''
"""
@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
"""
"""
@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
"""
"""
@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