目录
在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。
1、for-in循环
2、while循环
3、break、continue和exit的用法
4、命令提示符的实现:import osprint(os.system('ls'))print(os.system('pwd'))
5、while的嵌套练习以及制表符
在Python中构造循环结构有两种做法,一种是for-in
循环,一种是while
循环。
1、for-in循环
如果明确的知道循环执行的次数或者要对一个容器进行迭代,那么我们推荐使用for-in
循环
比如计算1-100的和:
sum = 0
for x in range(101):
sum += x
print(sum)
上述例子中:
range(101)
可以用来构造一个从0到100的取值范围,这就构构造出了一个整数序列
-
range(101)-产生
0到100的整数序列。 -
range(1, 100)
产生1到99的整数序列。 -
range(1, 100, 2)生成
1到99的奇数序列,其中2是步长,即数值序列的增量。
练习1:求最大公约数和最小公倍数
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
# 方法1:找出两个最小的数
# if a < b:
# c = a
# else:
# c = b
#方法2:调用求最小值的函数
c=min(a,b)
for i in range(1, c + 1):
if a % i == 0 and b % i == 0:
max = i
else:
continue #当i不能被a,b整除时,则跳出次次循环,进行下一次循环
print("最大公约数为:%d" %max)
min = (a * b) / max
print("最小公倍数为:%d" % min)
练习2、用户输入一个数字,求该数字的阶乘
num=int(input('请输入一个数字:'))
for i in range(1, num):
num *=i
print(num)
2、while循环——用俩构造不知道循环次数的循环
while 条件满足:
语句1...
else:
循环全部完成后 要执行的语句
死循环:当条件永远为真的时候进行死循环
a = random.randint(1,100) #生成一个1-100之间的随机数
例如:登录系统的设置
i = 0
while i < 3:
name = input('用户名:')
passwd = input('密码:')
if name == 'root' and passwd == 'westos':
print('登陆成功')
# 跳出整个循环,不会再执行后面的内容
break
else:
print('登陆失败')
print('您还剩余%d次机会' %(2-i))
i += 1
else:
print('登陆次数超过三次,请等待100s后再次尝试登陆')
3、break、continue和exit的用法
break——跳出整个循环 不会再执行循环后面内容
eg:循环总共3此,当第一次符合条件后,则不进行其余两次循环,这时候就要用到
continue:跳出本次循环,进行下一次循环
continue后面的代码不会执行
exit():结束程序的运行,即使循环外边的程序,也不会执行
4、命令提示符的实现:
import os
print(os.system('ls'))
print(os.system('pwd'))
5、while的嵌套练习以及制表符
\t:制表符,协助我们在输出文本的时候在垂直方向保持对齐
# print('1\t2\t3')
# print('10\t20\t30')
\n:换行符
print('hello\npython')
练习1、输出99乘法表——其实只要记住这个模型,其他的都好办
#用while循环
row = 1
while row <= 9:
col = 1
while col <= row:
# print('%d * %d = %d\t' %(row,col,row*col),end='')
print(f'{row}*{col}={row*col}',end='\t')
col += 1
# 手动换行
print('')
row += 1
#用for循环
for i in range(1,10):
for j in range(1,i+1):
print(f'{i}*{j}={i * j}',end='\t')
print() #手动换行
练习2、用while输出以下四种图形:
a、
*
**
***
****
方法1:手动换行print('')
row = 1
while row <= 9:
col = 1
while col <= row:
print('*' ,end='')
col += 1
# 手动换行(col每循环完毕就进行换行)
print('')
row += 1
方法2:
进行嵌套循环
raw=1,先输出第一行,然后col输出1次
raw=2,输出第二行,然后col输出1+1次
raw = 1 #行
col = 1 #列
a = input("请输入字符:")
while raw < 9:
while col < 9:
print("%s" % a * col)
col += 1
raw += 1
b、
****
***
**
*
方法1:
row = 1
while row <= 9:
col = 9
while col > row:
print('*',end='')
col -= 1
# 手动换行(col每循环完毕就进行换行)
print('')
row += 1
方法2:
raw = 1 #行
col = 9 #列
a = input("请输入字符:")
"""
进行嵌套循环
raw=1,先输出第一行,然后col输出9次
raw=2,输出第二行,然后col输出9-1次
……
"""
while raw < 9:
while col > 0:
print("%s" % a * col)
col -= 1
raw += 1
c、
*
***
*****
*******
*********
for i in range(row):
for _ in range(row - i - 1):
print(' ', end='')
for _ in range(2 * i + 1):
print('*', end='')
print()