python基础(四、循环语句)
while 循环
while循环,while循环的使用if的基本相同,在while之后使用表达式,如果表达式为真,就会反复执行while循环代码块的作用域,每执行完一次就重新判断while的表达式,真就重复上述步骤,直到表达式为假才会跳出;如果一开始就是假,直接跳过
死循环
只要while循环的条件表达式一直为真,相应的作用域就会一直执行,无法跳出,形成死循环。死循环时循环无法跳出,循环语句之后的代码也不会执行
while True :
print('死循环')
print('跳出循环')
案例
print("开始")
num = 1
while num < 3:
print("1111")
num = 5
print("结束")
运行结果:
开始
1111
结束
循环控制语句
为了控制循环的流,或者根据一些指定的条件改变执行,在Python中有三个控制语句
中断
Break语句用于终止包含它的循环的执行。只要循环遇到Break语句,循环就会终止,并且执行转移到循环后面的下一条语句
i = 0
while i < 101:
print(i)
i += 1
if i == 101:
break
else:
print("结束")
print("___结束")
运行结果:
100
___结束
继续
continue用于跳过当前迭代循环中代码的循环。它不会像BREAK语句那样终止循环,而是继续进行剩余的迭代
i = 1
while i < 6:
print(i)
if i == 3 :
continue
i += 1
PASS
pass语法为空操作。这基本上意味着语句在语法上是必需的,但是您不希望执行任何命令或代码
for循环
while 让程序处于一直执行的状态 while True
for 打印数值 循环打印数据 整数好字符串
# 单个整数不是一个可迭代的对象
a = (1,2,3,4,5,8)
print(type(a))
for i in a:
print(i)
结果:
<class 'tuple'>
1
2
3
4
5
8
range()函数
"""
range()函数 作用生成一组数字列表,指定数字生成
range()函数 start 开始 默认从0 开始,可以不指定 ;stop 结束 指定数值,取值只取到停止的前一位;step 步长
"""
sum = 0
num = 0
for a in range(1,101):
if a % 2 == 0:
print(f"偶数{a}")
sum = sum + a
else:
print(f"奇数{a}")
num = num + a
print(f"1到100中间的偶数和为{sum}")
print(f"1到100中间的奇数和为{num}")
print(f"总共{sum + num}")
结果:
.....
..
奇数97
偶数98
奇数99
偶数100
1到100中间的偶数和为2550
1到100中间的奇数和为2500
总共5050
——————————————————————————————————
# 通过for 循环实现阶乘
number = int(input("输入大于0的整数:"))
sum = 1
for i in range(1, number + 1):
sum = sum * i
print(f"阶乘结果为:{sum}")
结果:
输入大于0的整数:10
阶乘结果为:3628800
# 降序打印,索引支持负数索引
for i in range(6,1,-1):
print(i)
结果:
6
5
4
3
2
格式化方法
占位符
占位符的主要作用是用来进行参数的传递
%s :格式化字符串、字符串占位符 S = String
意思是%作为一个替代或是占位符,把name的变量值替换%s
name = "server"
lober = "python"
print("%s 喜欢 %s!"%(name,lober))
运行结果;
server 喜欢 python!
%d:整型,正数占位符
data = "北京%s,在%d区"
data1 = data % ("市",20)
print(data1)
运行结果:
北京市,在20区
%f:浮点型,浮点数占位符
%.xf:可以精确到小数点后 x 位
π = 3.1415926
print("圆周率(%.2f)" % (π))
运行结果:
圆周率(3.14)
2、format字符串格式化
format 格式化 单个参数可以多次输出,参数顺序可以不同,填充方式十分灵活,对齐方式十分强大运用广泛
print("...{key1}""...{key2}...,".format(key1=7, key2=2))
# 填充对齐
# 先取值,在冒号后指定填充格式:{索引}
# 左对齐 *< 20 总共20给字符;不够就使用*号进行填充
print("{0:*<20}".format("hello python"))
# 右对齐 * > 20 总共20给字符;不够就使用*号进行填充
print("{0:*>20}".format("hello python"))
结果:
...7...2...,
hello python********
********hello python
# 居中对齐 ^20: 居中显示,总共20个字符,不够用*填充
print("{0:*^20}".format("hello python"))
结果:
****hello python****
# 位数与进制转换
# 保留有效数字
print("{0:.2f}".format(3.1415926))
# 转换为二进制 b
print("{0:b}".format(16))
# 转换为八进制 o
print("{0:o}".format(15))
# 转换为十六进制 x
print("{0:x}".format(15))
结果:
3.14
10000
17
f
3、f-Strings
字符串前面加上 “f”,{}直接使用变量,表达式
name = "小刘"
age = 29
width = 124.4
# 在{}直接使用变量
print(f"my name is {name},my age is {age},{width}")
# 使用表达式
print(f"{1 + 2 <= 3}")
# {} 调用 python内置函数
print(f"{name.upper()}")
结果:
my name is 小刘,my age is 29,124.4
True
小刘