Skip to content

Python算法实践Week3-循环程序设计

Hsinyan
Updated date:
1 min read

0x00 问题引入

0x01 while循环

# 问题:求1+2+3+4+……+100的值
sum = 0
i = 1
while i < 101:
   sum += i
   i += 1
print(sum)
# 问题:求1~n的和,n为任意正整数
n = int(input('请输入正整数n:'))
sum = 0
i = 1
while i < n+1:
   sum += i
   i += 1
print(sum)

0x02 for循环

range(start,end,step)
range()函数创建序列,包括下限,不包括上限
例如
	range(101),范围0~100
	range(1,101),访问1~100
sum = 0
for i in range(1,101):
    sum += i
print(sum)
sum = 0
for i in range(1,101):
    sum += i
print(sum)

0x03 循环嵌套

# 打印99乘法表
for i in range(1, 10):  # 控制行
    for j in range(1, i + 1):  # 控制列
        print('{}*{}={}'.format(j, i, i * j), sep='', end='\t')
    print()

0x04 break和continue

# 求200以内能被17整除的最大正整数
for i in range(200, 1, -1):
    if i % 17 == 0:
        break
print('200以内能被17整除的最大正整数是{}'.format(i))
# 求1~100以内所有偶数和
sum = 0
for i in range(1, 101):
    if i % 2 == 0:
        sum += i
    else:
        continue
print(sum)
# 方法1
num = 0
for i in range(2, 200):
    k = True
    for j in range(2, i):
        if(i % j == 0):
            k = False
            break
    if(k==True):
        print(i)
        num += 1
print('200以内的素数有{}个'.format(num))
# 方法2
import math
num = 0
for i in range(2, 200):
    m = int(math.sqrt(i))
    k = True
    for j in range(2, m + 1):
        if(i % j == 0):
            k = False
            break
    if(k):
        print(i)
        num += 1
print('200以内的素数有{}个'.format(num))
Previous
Python算法实践Week2-分支程序设计
Next
Python算法实践Week4-查找算法