1、range()函数
# Name: Python study
# Designer: MilesHugh
# Time: 2023/4/7 9:08
# range()函数
# -用来生成一个整数序列
# -三种创建方式
# -range(stop)
# -range(start,stop)
# -range(start,stop,step)
"""第一种创建方式,只有一个参数(小括号中只给了一个数)"""
r = range(10)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],默认从0开始,默认相差1称为步长
print(r)
# range(0, 10)
print(list(r))
# 用于查看range对象中的整数序列 #list-列表
"""第二种创建方式,给了两个参数(小括号中给了两个数)"""
r = range(1, 10)
# 指定了起始值,从1开始,到10结束(不包含10),默认步长为1
print(list(r))
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
"""第三种创建方式,给了三个参数(小括号中给了三个数)"""
r = range(1, 10, 2)
print(list(r))
# [1, 3, 5, 7, 9]
print(10 in r)
# False ,10不在当前的r这个整数序列中
print(9 in r)
# True,9在当关的r这个序列中
print(10 not in r)
# True
print(9 not in r)
# False
print(range(1, 20, 1))
# 包括了[1...19]
print(range(1, 101, 1))
# 包括了[1,....100]
# range类型的优点
# -不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start、stop、step,只有当用到range对象时,才会去计算序列中的相关元素。
2、while循环
# Name: Python study
# Designer: MilesHugh
# Time: 2023/4/7 9:24
# 循环结构
# -while
# -for...in...
# while结构:
a = 1
# 判断条件表达式
while a < 10:
# 执行条件执行体
print(a)
a += 1
# 计算0到4之间的累加和
"""4步循环法
1.初始化变量
2.条件判断
3.条件执行体(循环体)
4.改变变量
总结: 初始化的变量与条件判断的变量与改变的变量为同一个"""
sum = 0
i = 0
while i < 4:
sum += i
i += 1
print('和为', sum)
"""计算1到100之间的偶数和"""
sum = 0
i = 0
while i <= 100:
if not bool(i % 2):
# 或者if i % 2 == 0:
# 求奇数和if i % 2:
# 或者 if bool(i % 2):
# 若余数是1,则True,执行 sum += i;若余数是0,则False,执行i += 1
sum += i
i += 1
print('1到100之间的偶数和为', sum)
3、for-in循环
# Name: Python study
# Designer: MilesHugh
# Time: 2023/4/7 9:50
# for-in循环
# -in表达从(字符串、序列等)中依次取值,又称为遍历
# -for-in遍历的对象必须是可迭代对象
for item in 'Python':
# 第一次取出来的是P ,将P赋值值item,将item的值输出
print(item)
# range() 产生一个整数序列,也是一个可迭代对象
for i in range(1, 10, 2):
print(i)
# 如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_”
for _ in range(5):
# 作为循环次数
print('我爱Python')
print('------使用for循环,计算1到100之间的偶数和------')
sum = 0
for i in range(0, 101):
if i % 2 == 0:
# 或者:if not i % 2:
sum += i
print('1到100之间的偶数和', sum)
"""输出100到999之间的水仙花数
举例;
153=3*3*3+5*5*5+1*1*1"""
print('------100到999之间的水仙花数------')
for i in range(100, 1000):
a = i //100
b = i //10 % 10
c = i % 10
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)
4、break、continue与else语句
# Name: Python study
# Designer: MilesHugh
# Time: 2023/4/7 10:20
# 流程控制语句break
# -用于结束循环结构,通常与分支结构if一起使用
"""从键盘录入密码,最多录入3次,如果正确就结束循环"""
print('------请输入密码,最多三次机会------')
for i in range(3):
pwd = input('请输入密码:')
if pwd == '666':
print('密码正确')
break
else:
print('密码不正确')
else:
print('对不起,三次密码均输入错误')
# 第二种方法
a = 0
while a < 3:
pwd = input('请输入密码:')
if pwd == '666':
print('密码正确')
break
else:
print('密码不正确')
a += 1
else:
print('对不起,三次密码均输入错误')
# 流程控制语句continue
# -用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用
"""要求输出1到50之间所有5的倍数:5,10,15,20,25....
5的倍数的共同点:和5的余数为0的数都是5的倍数。与5的余数不为0的数都不是5的倍数
使用continue实现"""
print('-------------使用常规方法-----------------')
for i in range(1, 51):
if i % 5 == 0:
print(i)
print('-------------使用continue-----------------')
for i in range(1, 51):
if i % 5 != 0:
continue
print(i)
5、嵌套循环
# Name: Python study
# Designer: MilesHugh
# Time: 2023/4/7 10:46
# 嵌套循环
"""输出一个三行四列的矩形"""
print('-------------输出一个三行四列的矩形-----------------')
for i in range(1, 4):
# 行表,执行三次,一次一行
for j in range(1, 5):
print('*', end='\t')
# end=不换行输出
print()
print('-------------输出一个直角三角形-----------------')
for i in range(1, 10):
for j in range(1, i + 1):
print('*', end='')
print()
print('-------------输出九九乘法表-----------------')
for i in range(1, 10):
for j in range(1, i + 1):
print(i, '*', j, '=', i*j, end='\t')
print()
# 二重循环中的break和continue
# -用于控制本层循环
print('-------流程控制语句break在二重循环中的使用-------')
for i in range(5):
for j in range(1, 11):
if j % 2 == 0:
break
# 跳出if循环
print(j, end='\t')
print()
print('-------流程控制语句continue在二重循环中的使用-------')
for i in range(5):
for j in range(1, 11):
if j % 2 == 0:
continue
# 返回if循环
print(j, end='\t')
print()