学习Python(3)占位符&循环&break、continue和pass使用
目录
占位符
常用的占位符方法有三种
案例一:
%s 字符数
%d 整数
%f 浮点数
name = '渣渣灰'
age = 50
m = 10.456
print('%s代言了贪玩蓝月,他今年50岁了' % name)
print('%s代言了贪玩蓝月,他今年%d岁了' % (name, age))
print('古天乐身价:%f亿' % m)
print('古天乐身价:%.1f亿' % m)
案例二:
format(): 格式化字符串
name = '渣渣灰'
age = 50
print('{}代言了贪玩蓝月,他今年{}岁了'.format(name, age))
print('{a}代言了贪玩蓝月,他今年{b}岁了'.format(b=age, a=name))
案例三:
f’’ : python版本3.6以后(推荐使用)
print(f'{name}代言了贪玩蓝月,他今年{age}岁了')
循环
while循环
使用场景:
for: 一般已知遍历次数
while: 一般未知遍历次数
while
语法:
初始化表达式
while 条件表达式:
循环体
循环之后操作表达式
案例一:
# 1+2+3+...+100
s = 0 # 求和
i = 1 # 循环的初始值
while i <= 100: # 循环条件
s = s + i
i = i+1 # 循环改变量
print(s, i) # 5050
# 第1次循环: 循环前: i=1;s=0; 条件i<=100成立; 循环后: i=2;s=0+1;
# 第2次循环: 循环前: i=2;s=0+1; 条件i<=100成立; 循环后: i=3;s=0+1+2;
# 第3次循环: 循环前: i=3;s=0+1+2; 条件i<=100成立; 循环后: i=4;s=0+1+2+3;
# 第4次循环: 循环前: i=4;s=0+1+2+3; 条件i<=100成立; 循环后: i=5;s=0+1+2+3+4;
# ...
# 第99次循环: 循环前: i=99;s=0+1+2+3+..+98; 条件i<=100成立; 循环后: i=100;s=0+1+2+3+..+98+99;
# 第100次循环: 循环前: i=100;s=0+1+2+3+..+99; 条件i<=100成立; 循环后: i=101;s=0+1+2+3+..+98+99+100;
# 第101次循环: 循环前: i=101;s=0+1+2+3+..+100; 条件i<=100不成立; 退出循环.
案例二:
# 求1-100之间可以被7整除的数的个数
count = 0 # 计数
i = 1
while i <= 100:
if i%7 == 0:
count += 1
i += 1
print("count:", count)
案例三:
# 计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数。
count = 0
i = 1
while i <= 100:
if (i%7==0 or i%3==0) and i%21!=0:
count += 1
i += 1
print(count)
案例四:
# 求1000以内的水仙花数:水仙花数:一个三位数各个位上的立方之和,等于本身。
# 例如: 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
i = 100
while i <= 999:
a = i//100
b = i//10%10
c = i%10
if a**3 + b**3 + c**3 == i:
print(i)
i += 1
死循环
死循环:进入循环之后无法停止
n = 3
while n > 0:
print(n)
for循环
for-in
语法:
for 变量名 in 序列:
循环体
range([start,]end[,step])
功能:生成具有一定规律的序列
注:[ ]表示start和step可写可不写
start:开始数字
end;结束数字
step;步长
start默认为0,step默认为1
案例一:
# range(start, stop, step): 范围:[start, stop), 是数字序列, 不是列表
print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(1, 11)))
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(list(range(1, 11, 3)))
# [1, 4, 7, 10]
print(list(range(11, 1, -1)))
# [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]
案例二:
# 1+2+3+...+100
s = 0
for i in range(1, 101):
# print(i)
s += i
print(s)
案例三:
# 求1-100之间可以被7整除的数的个数
count = 0
for i in range(1, 101):
if i%7 == 0:
count += 1
print(count)
案例四:
# 计算从1到100以内所有能被3或者17整除的数的和。
s = 0
for i in range(1, 101):
if i%3==0 or i%17==0:
s += i
print(s)
遍历列表
案例一:
stars = ["小a", "小b", "小c", "小d", "小e"]
# 得到列表中的每个元素/数据
for star in stars:
print(star)
index:下标/索引
案例二:
# 得到列表中的每个下标: 从0开始
# len(stars): 列表长度/元素个数
# range(len(stars)): => range(5) => 0,1,2,3,4
for i in range(len(stars)):
print(i, stars[i])
for 循环嵌套
案例一:
# 打印下面的图案
'''
*****
*****
*****
'''
for i in range(3):
for j in range(5):
print("*", end='')
print()
案例二:
# 打印下面的图案
'''
*
**
***
****
*****
'''
for i in range(5): # i=0,1,2,3,4
for j in range(i+1):
print("*", end='')
print()
案例三:打印九九乘法表
#while实现
line = 1
while line <= 9:
colum = 1
while colum <= line:
print("%dx%d=%d"%(colum,line,line*colum),end=" ")
colum += 1
print("")
line += 1
#for实现
#外层循环:控制行
for i in range(1,10):
#内层循环:控制列
for j in range(1,i + 1):
print(f'{j}*{i}={i*j}', end=' ')
print()
break、continue和pass使用
break
作用: 1. 存在于循环中:while,for
2. 跳出当层循环
3. break后的代码不执行
4. 和for-else,while-else结合使用
案例一:
# 找1-10中第一个能被3整除的数
for i in range(1, 11):
if i%3 == 0:
print(i)
break
print("hello") # 不会执行
案例二:
for i in range(1, 5):
for j in range(1, 5):
if j == 2:
break # 只会跳出最里层的循环
print(i, j)
for-else
1. 需要结合break使用
2. 只要不执行break,则会执行else, 只要执行了break,就不会执行else
案例三:
# 从键盘输入一个数n,判断是不是一个质数/素数(质数是只能被1和它自身整除的数)
n = 3337
for i in range(2, n):
if n%i == 0:
print(n, "不是素数")
break
else:
print(n, "是素数")
# 方式二
n = 3337
flag = True # 假设是素数
for i in range(2, n):
if n%i == 0:
print(n, "不是素数")
flag = False # 变成不是素数
break
if flag:
print(n, "是素数")
continue
作用: 1.停止当次循环,直接进入下一次循环
2.在循环中使用
3.continue之后的代码不会执行
案例一:
# for
for i in range(10):
print(i)
if i == 3:
continue
print("*")
for i in range(10):
print(i)
if i == 3:
break
print("*")
#总结:continue只是结束当前正在执行的循环,而break表示直接结束整个循环
# else可以替代continue
for i in range(1, 11):
if i%3 == 0:
pass
else:
print(i)
案例二:
# while
"""
num = 0
while num < 10:
print("num = %d"%(num))
num += 1
if num == 3:
continue
"""
num = 0
while num < 10:
if num == 3:
num += 1
continue
print("num = %d" % (num))
num += 1
pass
Python中的pass是一条空语句
作用: 1. 空语句
2. 占位语句
3. 保证代码的完整性,防止报错
应用场景:
if,while,for中使用,可以在代码块的部分不添加任何语句,代码正常运行
案例:
while True:
pass
print("over")