一 基础
读程序,总结程序的功能
numbers = 1
for i in range(0,20):
numbers*=2
print(numbers)
答:输出的是2的20次方
summation = 0
num=1
while num<=100:
if (num%3==0 or num%7==0) and num%21!=0:
summation += 1
num+=1
print(summation)
答:输出的是1到100之间能被3或者7整除但是不能被21整除的数一共有多少个.
编程实现(for和while各写⼀一遍):
- 求1到100之间所有数的和、平均值
sum1 = 0
for x in range(1,100):
sum1 += x
print(sum1, sum1/99)
sum2 = 0
num = 1
while num < 100:
sum2 += num
num += 1
print(sum2, sum2/99)
- 计算1-100之间能3整除的数的和
sum1 = 0
for x in range(1,100):
if x % 3 == 0:
sum1 += x
print(sum1)
num = 1
while num < 100:
if num % 3 == 0:
sum2 += num
num +=1
print(sum2)
- 计算1-100之间不能被7整除的数的和
sum1 = 0
for x in range(1,100):
if x % 7 == 0:
continue
sum1 += x
print(sum1)
sum2 = 0
num = 1
while num < 100:
if num % 7 == 0:
num += 1
continue
sum2 += num
num += 1
print(sum2)
二 稍微困难
- 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34....
n = int(input('请输入第几个数:'))
num1 = 0
num2 = 1
while n > 0 :
num1 , num2 = num2, num1 + num2
n -= 1
print(num1)
- 判断101-200之间有多少个素数,并输出所有素数。判断素数的⽅方法:⽤一个数分别除2到sqrt(这个 数),如果能被整除,则表明此数不是素数,反之是素数
num = 2
count = 0
for i in range(101,200):
while num < sqrt(i):
# print(num,end=' ')
if i % num == 0:
num = 2
break
num += 1
else:
count += 1
print(i)
num = 2
print(count)
- 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是 一个水仙花数,因为153 = 1^3 + 5^3 + 3^3
# 个位
num = 0
# 十位
num_10 = 0
# 百位
num_100 = 0
for i in range(100,1000):
num = i % 10
num_10 = i // 10 % 10
num_100 = i // 100
if i == (num**3 + num_10**3 + num_100**3):
print(i)
- 有一分数序列列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数 分子:上⼀一个分数的分⼦子加分⺟母 分⺟母: 上⼀一个分数的分⼦子 fz = 2 fm = 1 fz+fm / fz
n = int(input('请输入第几个数:'))
# 分母
denominator = 2
# 分子
molecule = 1
while n > 0 :
# print(denominator,molecule,n)
molecule , denominator = denominator, molecule + denominator
n -= 1
print(molecule)
- 给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字
m = int(input('请输入一个整数:'))
i = 0
n = 10
while True:
if m // n != 0:
i += 1
n *= 10
else:
i += 1
print('m是' + str(i) + '位数', end=' ')
break
j = i
a = 0
while j:
print(m // 10**a % 10, end=' ')
a += 1
j -= 1
提高
1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
上课已讲
2.计算5的阶乘 5!的结果是
num = 1
for i in range(1,6):
# print(i, end=' ')
num *= i
# print(num)
print(num)
3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。
num = 1 # 记录每个数的阶乘
sum1 = 0 #记录每个数的阶乘的和
for j in range(1,21):
i = 1
while i <= j:
# print(i, end=' ')
num *= i
i += 1
# print(num)
# print(num,j , end=' ')
sum1 += num
num = 1
print(sum1)
print(sum1)
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
num = 1 # 记录每个数的阶乘
sum1 = 0 #记录每个数的阶乘的和
for j in range(1,21):
i = 1
while i <= j:
# print(i, end=' ')
num *= i
num = 1 / num
i += 1
# print(num)
# print(num,j , end=' ')
sum1 += num
num = 1
print(sum1)
print(sum1)
5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
num = int(input('请输入数字:'))
sum1 = 0
while num != 0:
sum1 += num
num = int(input('请输入数字:'))
print('完成!')
print(sum1)