循环结构
1.for-in循环
2.while循环
练习1:输入一个正整数判断是不是素数。
from math import sqrt
a = int(input(‘请输入一个正整数:’))
end = int(sqrt(a))
is_prime = True
for i in range(2,end+1):
if a % i == 0:
is_prime = False
break
if is_prime and a != 1:
print(’%d 是素数’ % a)
else:
print(’%d 不是素数’ % a)
注:这是答案代码。我的代码计算和判断采取的是暴力穷举法,应该耗时又占内存,还有判断是否是素数时,我忘了这个数不应该等于1这个条件。
练习2:输入两个正整数,计算它们的最大公约数和最小公倍数。
a = int(input(‘请输入一个正整数:’))
b = int(input(‘请输入一个正整数:’))
if a > b:
a,b = b,a
#if b % a == 0:
biggy = a
smgb = b
print(’%d和%d的最大公约数是%d’ % (a, b, biggy))
#print('%d和%d的最小公倍数是%d' % (a, b, smgb))
#else:
for i in range(a,0,-1):
if a % i ==0 and b % i ==0:
print(’%d和%d的最大公约数是%d’ % (a, b, i))
print(’%d和%d的最小公倍数是%d’ % (a, b, a * b // i))
break
注:我的代码有些繁琐,中间的几行注释掉也完全不影响’’’
练习3:打印如下所示的三角形图案。
row = int(input(‘请输入行数: ‘))
for i in range(row):
for _ in range(i + 1):
print(’*’, end=’’)
print()
for i in range(row):
for j in range(row):
if j < row - i - 1:
print(’ ‘, end=’’)
else:
print(’*’, end=’’)
print()
for i in range(row):
for _ in range(row - i - 1):
print(’ ‘, end=’’)
for _ in range(2 * i + 1):
print(’*’, end=’’)
print()
注:这几个三角,对我来说挺难的,双层循环我理解起来比较困难。