基础
一、读程序
1.读程序
numbers = 1 #定义一个变量numbers,并给其赋值为1
for i in range(0,20): #使用for循环遍历0到19之间的整数,并赋值给i
numbers *= 2 #循环让变量numbers扩大两倍,循环20次
print(numbers) #打印经过20次扩大两倍的numbers
2.读程序
summation = 0 #声明变量summation,并赋值为0
num = 1 #声明变量num,并赋值为1
while num <= 100: #使用while循环,条件为当变量num小于等于100时执行循环体
if (num % 3 ==0 or num % 7 == 0) and num % 21 != 0: #if判断,判断num是都能被3或7整除,但不能同时被3和7整除
summation += 1 #当满足if条件语句时,变量sunmation值加1,即统计100以内能被3或7整除,但不能同时被3和7整除能被3或7整除,但不能同时被3和7整除的数的个数
num += 1 #循环执行一次,变量num值加1
print(summation) #打印summation,即100以内能被3或7整除,但不能同时被3和7整除能被3或7整除,但不能同时被3和7整除的数的个数
二、编程题
1. 求1到100之间所有数的和、平均值
1)for
sum1 = 0
for i in range(1,101):
sum1 += i
average1 = sum1 / 100
print('for循环和为:',sum1,'平均值为:',average1)
2)while
num = 1
sum2 = 0
while num <= 100:
sum2 += num
num += 1
average2 = sum2 / 100
print('while和为:',sum2,'平均值为:',average2)
2. 计算1-100之间能被3整除的数的和
1)for
sum3 = 0
for i in range(1,101):
if i % 3 == 0:
sum3 += i
print('1-100之间能被3整除的数的和为:',sum3)
2)while
sum4 = 0
num = 1
while num <= 100:
if num % 3 == 0:
sum4 += num
num += 1
print('1-100之间能被3整除的数的和为:',sum4)
3. 计算1-100之间不能被7整除的数的和
1)for
sum5 = 0
for i in range(1,101):
if i % 7 != 0:
sum5 += i
print('1-100之间不能被7整除的数的和为:',sum5)
2)while
sum6 = 0
num = 1
while num <= 100:
if num % 7 != 0:
sum6 += num
num += 1
print('1-100之间不能被7整除的数的和为:',sum6)
稍微困难
1. 求斐波那契数列中第n个数的值:1,1,2,3,5,8,13,21,34....
a=b=c=d= 1
num = 0
while True:
n = int(input('请输入你想知道斐波那契数列中第几个数的值:'))
if n == 1 or n == 2:
print('斐波那契数列中第几个数的值:',b)
break
#1)for
for i in range(n-2):
a,b = b,a+b
else:
break
#2)while
# while num < n-2:
# c,d = d,c+d
# num += 1
# else:
# break
print('for斐波那契数列中第几个数的值:',b)
# print('while斐波那契数列中第几个数的值:',d)
2. 判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
summation = 0
for i in range(101,201):
for j in range(2,int(i**0.5)+1):
if i % j == 0:
break
else:
summation += 1
print(summation)
4. 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数
分子:上一个分数的分子加分母。分母: 上一个分数的分子 fz = 2 fm = 1 fz+fm / fz
- 1)for
fz, fm = 2, 1
value = 0
for i in range(1,21):
if i == 1:
print('这个数列的第1个分数为:',fz,'/',fm)
value = fz /fm
else:
fz, fm = fz + fm, fz
value = fz / fm
print('这个数列的第20个分数为:',fz,'/',fm)
print('这个数列的第20个分数的值为为:',value)
- 2)while
fz1, fm1 = 2, 1
i = 2
while i > 1 and i <= 20:
fz1, fm1 = fz1 + fm1, fz1
if i == 20:
print('这个数列的第20个分数为:',fz1,'/',fm1)
i += 1
5. 给一个正整数,要求:1.求它是几位数 2. 逆序打印出各位数字
value = input('请输入一个正整数:')
summation = 0
for char in value:
summation += 1
print('这个数是%d位数'%summation)
print('逆序输出每个数字')
for i in range(-1,-len(value)-1,-1):
print(value[i],end = ',')