day4作业

基础

读程序,总结程序的功能
1、

numbers=1
for i in range (0,20):
        numbers*=2
print(numbers)

功能:计算2的20次方

2、

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各写一遍)
3、求1到100之间所有数的和、平均值

for循环:
numbers=0
for x in range(1,101):
    numbers+=x
print(numbers)
print(numbers/100)

输出结果:
5050
50.5

while循环:
num1=0;sum1=0
while num1<=100:
    sum1+=num1
    num1+=1
print(sum1)
print(sum1/100)
输出结果
5050
50.5

4、计算1-100之间能被3整除的数的和

for循环:
sum=0
for x in range(3,101,3):
    sum+=x
print(sum)
输出结果:
1683
while循环:
num2=1; sum2=0
while num2<=100:
    if num2%3==0:
        sum2+=num2
    num2+=1
print(sum2)
输出结果
1683

5、计算1-100之间不能被7整数的数的和

for循环
sum1 = 0
for x in range(1,101):
    if x%7 != 0:
        sum1+=x
print(sum1)
输出结果
4315
while循环
sum2 = 0;num=1
while num <=100:    #此方法比较不佳,耗时长
    if num%7 == 0:
        num+=1
        continue
    else:
        sum2+=num
        num+=1  
print(sum2)
输出结果
4315

6、有一对兔子,从出生后第三个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月的兔子总共有多少?

f1 = 1
f2 = 1
f3 = 0
month = int(input())
if month > 2:
    for i in range(3, month+1):
        f3 = f1 + f2
        f1 = f2
        f2 = f3
    print('第%d月有%d对兔子' % (month, f3))
else:
    print('第%d月有1对兔子' % month)

7、判断101-200之间有多少个素数,并输出所有的素数。

for num in range(101, 201):
    for num1 in range(2, num):
        if num % num1 == 0:
            # print(num, '不是素数')
            break  # 循环嵌套的时候,遇到break和continue结束的是包含break和continue最近的循环
    else:
        print(num, '是素数')
101 是素数
103 是素数
107 是素数
109 是素数
113 是素数
127 是素数
131 是素数
137 是素数
139 是素数
149 是素数
151 是素数
157 是素数
163 是素数
167 是素数
173 是素数
179 是素数
181 是素数
191 是素数
193 是素数
197 是素数
199 是素数

8、打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。

for num3 in range(100, 1000):  # 取出所有三位数
    ge_wei = num3 % 10
    shi_wei = num3 // 10 % 10
    bai_wei = num3 // 100
    if num3 == ge_wei**3 + shi_wei**3 + bai_wei**3:
        print('%d是水仙数' % num3)
153是水仙数
370是水仙数
371是水仙数
407是水仙数

9、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数(分子:上一个分数的分子加分母 分母: 上一个分数的分子)

fen_zi = 2
fen_mu = 1
for x in range(1, 21):
    fen_zi, fen_mu = fen_zi+fen_mu, fen_zi
print('%d/%d' % (fen_zi, fen_mu))
28657/17711

10、给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字

number = int(input())
wei_shu = len(str(number))
print('%d是%s位' % (number, wei_shu))
print('逆序打印:%s' % str(number)[::-1])

你可能感兴趣的:(day4作业)