一、占位符
a. %s: 字符串占位符
b. %d: 整数占位符
c. %f: 小数占位符
name = "渣渣辉"
age = 50
print("%s代言了贪玩蓝月,他今年50岁了" % name)
print("%s代言了贪玩蓝月,他今年%d岁了" % (name, age))
print("古天乐身价:%f亿" % 10.5)
print("古天乐身价:%.1f亿" % 10.5) #保留1位小数
d. format():格式化字符串
name = "渣渣辉"
age = 50
print("{}代言了贪玩蓝月,他今年{}岁了" .format(name, age))
print("{a}代言了贪玩蓝月,他今年{b}岁了" .format(b=age, a=name))
e. f’ ’ : 格式化字符串
———Python3.6以后新增的字符串
name = "渣渣辉"
age = 50
print(f"{name}代言了贪玩蓝月,他今年{age}岁了")
二、循环(while & for)
使用场景:
for:一般已知遍历次数,能使用for的就使用for
while:一般是未知遍历次数
a. 用法
初始化表达式
while 条件表达式:
循环体
循环之后操作表达式
for 变量名 in 序列:
循环体
b. range
range(start, end, step) 注:表达范围:[start, stop), 它们是数字序列,不是列表
start:开始数字
end:结束数字
step:步长
start默认为0, step默认为1
作用:生成具有一定规律的序列
"""
l例如:
range(100) 可以生成一个0~99的整数序列【不包含100】
range(1,100) 可以生成一个1~99的整数序列
range(1,100,2) 可以生成一个1~99之间的奇数序列
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, 2))) #[1, 3, 5, 7, 9]
print(list(range(11, 1, -1))) #[11, 10, 9, 8, 7, 6, 5, 4, 3, 2]
"""
#需求1:借助于range生成一个1~100之间所有整数的序列,然后使用for循环进行遍历这个序列
for x in range(1,101):
sum11 += x
#需求2:计算1~100之间所有偶数的和
num2 = 1
sum2 = 0
while num2 <= 100:
if num2 % 2 == 0:
sum2 += num2
num2 += 1
num2 = 0
sum2 = 0
while num2 <= 100:
sum2 += num2
num2 += 2
sum22 = 0
for y in range(0,101,2):
sum22 += y
c. while循环
while:字义是,当。执行中,它会一直判定,除非条件为假时才会终止。
# 1.求和:1+2+3+4+...+100
s = 0 # 求和
i = 1 #循环的初始值
while i <= 100: # 循环条件
# print(i)
s = s + i
i = i + 1 # 循环改变量
print(s) # 5050
# while语句执行过程:
# 第1次循环: 循环前:s=0;i=1; 条件1<=100成立; 循环后:i=2;s=0+1
# 第2次循环: 循环前:i=2;s=0+1; 条件1<=100成立; 循环后:i=3;s=0+1+2
# 第3次循环: 循环前:i=3;s=0+1+2; 条件1<=100成立; 循环后:i=4;s=0+1+2+3
# ...
# 第100次循环: 循环前:i=100;s=0+1..+98+99; 条件1<=100成立; 循环后:i=100;s=0+1+2..+99+100
# 第101次循环: 循环前:i=101;s=0+1..+100; 条件1<=100不成立; 循环后:i=101;s=0+1+2..+99+100 退出
# 2.求1-100之间可以被7整除的数的个数
count = 0 # 计数
i = 1
while i <= 100:
if i%7 == 0:
# print(i)
count += 1
i += 1
print("count:", count)
# 3.计算从1到100以内所有奇数的和。
s = 0
i = 1
while i <= 100:
if i%2:
s += i
i += 1
print(s)
# 4.计算从1到100以内所有能被3或者17整除的数的和。
s = 0
i = 1
while i <= 100:
if i%3 == 0 or i%17 == 0:
s += i
i += 1
print(s)
d. for循环
for-in:
# 求和:1+2+3...+100
s = 0
for i in range(1, 101):
s += i
print(s)
# 遍历列表:把每一个都执行一遍
stars = ["11", "22", "33", "44"] # 得到列表中的每个元素/数据
for star in stars:
print(star)
for stas in stars:
print(star)
# 得到列表中的每个下标:从0开始
# range(len(stars)): => range(5) => 0,1,2,3,4,
for i in range(len(stars)): # len(stars):列表长度/元素个数
print(i, stars[i])
# 求1-100之间可以被7整除的数的个数
count = 0
for i in range(1, 101):
if i%7 == 0:
count += 1
print(count)
# 计算从1到100以内所有奇数的和。
s = 0
for i in range(1, 101):
if i%2==1:
s += i
print(s)
for循环嵌套:
# 打印下面的图案
'''
*
**
***
****
*****
'''
for i in range(5): # 0,1,2,3,4
for j in range(i+1):
print("*", end="")
print()
# 例如:打印九九乘法表
'''
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
...
'''
for i in range(1, 10):
for j in range(1, i+1): # j=1,...i
print(f'{j}*{i}={i*j}' , end=' ')
print()
e. break, continue & pass
作用:
1、存在于循环中:while,for
2、跳出当层循环中
3、break后的代码不执行
4、和for-else,while-else结合使用
break:
# 找1-10中的第一个能被3整除的数
for i in range(1, 11)
if i%3==0:
print(i)
break #跳出循环
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。
# 1.从键盘输入一个数n,判断是不是一个质数/素数(质数是只能被1和它自身整除的数)
# 方式一:
n = 77
for i in range(2, n):
if n%i == 0:
print(n, "不是素数")
break
else:
print(n, "是素数")
n = int(input("请输入一个数:"))
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之后的代码不会执行
4、else可以替代continue
for i in range(1, 11):
if i%3 == 0:
continue
print(i)
pass:
1、是一个空语句。
2、是站位语句,无任何语义
3、保证代码的完整性,防止报错
for i in range(1, 11):
if i%3 == 0:
pass
print(i)