Python-day-04作业

1、用代码实现2^20。

num1=1
for _ in range(0,20):
    num1 *=2
print(num1)

2、统计1-100中能被3或者7整除,但是不能被21整除的数的个数。

num1 = 1
sum1 = 0
while num1 <=100:
    if (num1 %3 == 0 or num1 % 7 ==0) and num1 % 21 != 0:
        sum1 += 1
    num1 += 1
print(sum1)
num1 = 1
sum1 = 0
for num1 in range(1,101):
    if (num1 % 3 ==0 or num1 % 7 ==0) and num1 % 21 !=0:
        sum1 += 1
print(sum1)

3、 求1到100之间所有数的和、平均值。

sum1=0
for x in range(1,101):
    sum1 += x
print('和:%d , 平均值:%.2f'%(sum1,sum1/100))
num1 = 1
sum1 = 0
while num1 <= 100:
    sum1 += num1
    num1 += 1
print('和:%d , 平均值:%.2f'%(sum1,sum1/100))

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

sum1 = 0
for x in range(1,101):
    if x % 3 == 0:
        sum1 += x
print('和:%d' % sum1)
num=1
sum1=0
while num<=100:
    if num%3==0:
        sum1+=num
    num+=1
print('和:%d' % sum1)

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

sum1 = 0
for x in range(1,101):
    if x % 7:
        sum1 += x
print('和:%d'%sum1)
num=1
sum1=0
while num<=100:
    if num%7:
        sum1+=num
    num+=1
print('和:%d'%sum1)
  1. 有.一对兔.子,从出.生后第3个.月起,每个.月都.生.一对兔.子,.小兔.子.长到第三个.月后每个.月.又.生.一对兔
    .子,假如兔.子都不不死,问第n个.月的兔.子总共有多少? 规律律: 第.一个.月和第.二个.月的数量量都是1 从第三个
    .月开始 n =( n-1) + (n-2) 1,1,2,3,5,8,13,21...n? 1 1 2 1 3 2 = 1+1 4 3 = 1+2 5 5 = 2+3 6 8 = 3+5 n 第(n-
    1)+第(n-2) n = n1 + n2 n==3 n1=1,n2=1 n=n1+n2=2 n==4 n1 = n2 n2 = n n = n1+n2
n = 3
pre_1 = 1  # 当前数字的前一个数
pre_2 = 1  # 当前数的前二个数
current = 0  # 当前这个数
# x代码的是当前是第几个数
for x in range(1, n+1):
    if x == 1 or x == 2:
        current = 1
        # print(1)
        continue
    # 根据前两个数的和计算当前这个数
    current = pre_1 + pre_2
    # print(current)
    # 更新前一个和前两个的值
    pre_1, pre_2 = pre_2, current

print('第%d个数是%d' % (n, current))
  1. 判断101-200之间有多少个素数,并输出所有素数。判断素数的.方法:.用.一个数分别除2到sqrt(这个
    数),如果能被整除,则表明此数不不是素数,反之是素数
for number in range(101, 201):
    count = 0
    # 判断取出来的number的值是否是素数
    for x in range(2, number):
        if number % x == 0:
            count += 1
            # print('%d不是素数'% number)
            # 只要在2~number-1之间有一个能够被number整除,那个这个number就确定不是素数
            break  # 循环嵌套的时候,遇到break和continue结束的是包含的最近的那个循环

  1. 打印出所有的.水仙花数,所谓.水仙花数是指.一个三位数,其各位数字.立.方和等于该数本身。例例如:153是
    .一个.水仙花数,因为153 = 1^3 + 5^3 + 3^3
for x in range(100,1000):
    # 个位
    ge_wei = x % 10
    # 十位
    shi_wei = x // 10 % 10
    # 百位
    bai_wei = x // 100
    if x == ge_wei**3 + shi_wei**3 + bai_wei**3:
        print('%d是水仙数' % x)
  1. 有.一分数序列列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列列的第20个分数
    1 2 1 2 3 2 3 5 3 4 8 5 分.子:上.一个分数的分.子加分.母 分.母: 上.一个分数的分.子 fz = 2 fm = 1 fz+fm / fz
fen_zi = 2
fen_mu = 1
for x in range(1, 21):
    if x == 1:
        # print('%d/%d' % (fen_zi, fen_mu))
        continue
    fen_zi,fen_mu = fen_zi + fen_mu, fen_zi
print('%d/%d' % (fen_zi, fen_mu))


  1. 给.一个正整数,要求:1、求它是.几位数 2.逆序打印出各位数字
    基础
    稍微困难
number = 12657887
str1 = str(number)
print(len(str1))
print(str1[::-1])

你可能感兴趣的:(Python-day-04作业)