0
点赞
收藏
分享

微信扫一扫

1 week work

莞尔小迷糊 2022-04-16 阅读 57
python

第一周作业

一、选择题

  1. 下列变量名中不合法的是?(c)

    A. abc

    B. Npc

    C. 1name

    D ab_cd

  2. 下列选项中不属于关键字的是?(d)

    A. and

    B. print

    C. True

    D. in

  3. 下面哪个选项对应的代码写法是正确的?(c)

    A.

    print('Python')
      print('新手村')

    B.

    print('Python') print('新手村')

    C.

    print('Python')
    print('新手村')

    D.

    print('Python''新手村')

  4. 下面选项中能打印出50的是?b

    A.

    print('100 - 50')

    B.

    print(100 - 50)

  5. 关于引号,下面选项中使用正确的是?d

    A.

    print('hello)

    B.

    print("hello')

    C.

    print(“hello”)

    D.

    print("hello")

二、编程题

  1. 写代码在控制台打印 good good study, day day up!

print('good good study','day day up',sep=',')

  1. 写代码在控制台打印5次 you see see, one day day!

for x in range(5):
    print('you see see', 'one day day', sep=',')

  1. 写代码打印数字 11、12、13、... 21

i = 11
for x in range(10):
    print(i, end='.')
    i += 1
else:
    print(i)
结果:
    11.12.13.14.15.16.17.18.19.20.21

  1. 写代码打印数字 11,13,15,17,...99

i = 11
for x in range(88):
    print(i, end='.')
    i += 1
else:
    print(i)

  1. 写代码打印数字:10、9、8、7、6、5

i = 10
for x in range(5):
    print(i, end='.')
    i -= 1
else:
    print(i)

  1. 写代码计算:1+2+3+4+...+20 的和

i = 1
a = 0
x = 0
for x in range(0,20):
    #print(i, end='.')
    a += i
    i += 1
else:
    print(a)
结果:
    210
  1. 写代码计算100以内所有偶数的和

    a = 0
    x = 0
    for x in range(0,100,2):
        a += x
    else:
        print(a)
    结果:
        2450
  2. 写代码统计100~200中个位数是3的数的个数

a = 0
x = 0
for x in range(100,201):
    q = x % 10
    if q == 3:
        a += 1
else:
    print(a)

  1. 写代码计算2*3*4*5*...*9的结果

    print(2*3*4*5*6*7*8*9)
    结果:
        362880

  1. 输入一个数,如果输入的数是偶数就打印偶数否则打印奇数

    x = random.randint(1,100)
    if x % 2:
        print(x,'奇数')
    else:
        print(x,'偶数')
    结果:
        34 偶数
        37 奇数
  2. 统计1000以内能被3整除但是不能被5整除的数的个数。

for x in range(0,1000):
    if not(x % 3) and x % 5:
        c += 1
else:
    print(c)
结果:
    267

  1. 判断101-200之间有多少个素数,并输出所有素数。

count = 0
for x in range(101,201):
    for i in range(2,x):
        if x % i == 0:
            break
    else:
        print('%d是一个素数'%x)
        count += 1
print('一共有%d个素数'%count)
101是一个素数
103是一个素数
107是一个素数
109是一个素数
113是一个素数
127是一个素数
131是一个素数
137是一个素数
139是一个素数
149是一个素数
151是一个素数
157是一个素数
163是一个素数
167是一个素数
173是一个素数
179是一个素数
181是一个素数
191是一个素数
193是一个素数
197是一个素数
199是一个素数
一共有21个素数
​

  1. 求整数1~100的累加值,但要求跳过所有个位为3的数。

count = 0
for x in range(1,101):
    c = x % 10
    if c % 3:
        count += x
else:
    print(count)
结果:
    2970
  1. 有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数

    a=2
    b=3
    c=1
    d=2
    for x in range(3,21):
        if x % 2:
            a += b
            print(a,end='-')
            c += d
        else:
            b+=a
            print(b,end='~')
            d += c
    else:
        print(b)
        print('%d/%d'%(b,d))
    结果:
        5-8~13-21~34-55~89-144~233-377~610-987~1597-2584~4181-6765~10946-17711~17711
        分数:17711/10946
  2. 写程序计算 n 的阶乘 n! 的结果

    x = random.randint(1,50)
    b = x
    count = x
    while (x - 1):
        count *= (x-1)
        x -= 1
    else:
        print('%d!等于%d'%(b,count))
    结果:
      40!等于815915283247897734345611269596115894272000000000
      2!等于2
      5!等于120
  3. 求1+2!+3!+...+20!的和

c = 1
​
for x in range(2, 21):
    count = x
    b = x
    while (x-1):
        count *= (x - 1)
        x -= 1
    else:
        c += count
​
else:
    print(c)
结果: 
    2561327494111820313

  1. 写程序求表达式 a + aa + aaa + aaaa+ ... 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)

  2. 控制台输出三角形

    a.根据n的值的不同,输出相应的形状
    n = 5时             n = 4
    *****               ****
    ****                ***
    ***                 **
    **                  *
    *
    shape = '*'
    n = random.randint(1,10)
    print('%d值'%n)
    for i in range(n,0,-1):
        f = shape
        d = i
        while d-1:
            f += shape
            d -= 1
        else:
            print(f)
    结果:6值
        ******
        *****
        ****
        ***
        **
        *
    ​
    b.根据n的值的不同,输出相应的形状(n为奇数)
    n = 5               n = 7
      *                    *
     ***                  ***
    *****                *****
                        *******
    shape = '*'
    shape1 = ' '
    n = 7
    c = (n-1)//2+1
    q = c
    active = True
    shape5 = shape*n
    print('输入的值:%d'%n)
    for i in range(c,0,-1):
        f = shape
        g = shape1
        d = i
        num1 = 0
        num = ''
        while d:
            num += shape1
            num1 += 1
            d -= 1
            if d == 0:
                while num1:
                    num += shape*((c-num1)*2+1)
                    num += shape1*d
                    print(num)
                    num1 = 0
    结果:
    输入的值:7
        *
       ***
      *****
     *******
    输入的值:9
         *
        ***
       *****
      *******
     *********
    ​
    ​
    c. 根据n的值的不同,输出相应的形状
    n = 4
       1
      121
     12321
    1234321
    ​
    n = 5
        1
       121
      12321
     1234321
    123454321
    shape = ' '
    n = 5
    num = ''
    print('所输入的值:%d'%n)
    for i in range(n,0,-1):
        num = ''
        f = shape
        num1 = 0
        d = i
        num2 = 0
        num4 = 0
        num5 = 0
        while d:
            num += shape
            num1 += 1
            d -= 1
            if d == 0 :
                print(num, end='')
                num3 = n - num1 + 1
                while num3:
                    num2 += 1
                    num4 += 1
                    print(num2, end='')
                    num3 -= 1
                    if num3 == 0:
                        num5 = num4
                        while num4-1:
                            num5 -= 1
                            print(num5,end='')
                            num4 -= 1
    ​
        else:
            print(' ')
    结果:
    所输入的值:5
         1 
        121 
       12321 
      1234321 
     123454321 
    所输入的值:8
            1 
           121 
          12321 
         1234321 
        123454321 
       12345654321 
      1234567654321 
     123456787654321 

  3. 小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?

num1 = 15
nu1 = 6
num2 = 2
nu2 = 50
num3 = 5
nu3 =20
for i in range(0,7):
    for j in range(0,51):
        for n in range(0,21):
            if i*num1+j*num2+n*num3 == 100:
                print('洗发水%d瓶,香皂%d个,牙刷%d双'%(i,j,n))
结果:
洗发水0瓶,香皂0个,牙刷20双
洗发水0瓶,香皂5个,牙刷18双
洗发水0瓶,香皂10个,牙刷16双
洗发水0瓶,香皂15个,牙刷14双
洗发水0瓶,香皂20个,牙刷12双
洗发水0瓶,香皂25个,牙刷10双
洗发水0瓶,香皂30个,牙刷8双
洗发水0瓶,香皂35个,牙刷6双
洗发水0瓶,香皂40个,牙刷4双
洗发水0瓶,香皂45个,牙刷2双
洗发水0瓶,香皂50个,牙刷0双
洗发水1瓶,香皂0个,牙刷17双
洗发水1瓶,香皂5个,牙刷15双
洗发水1瓶,香皂10个,牙刷13双
洗发水1瓶,香皂15个,牙刷11双
洗发水1瓶,香皂20个,牙刷9双
洗发水1瓶,香皂25个,牙刷7双
洗发水1瓶,香皂30个,牙刷5双
洗发水1瓶,香皂35个,牙刷3双
洗发水1瓶,香皂40个,牙刷1双
洗发水2瓶,香皂0个,牙刷14双
洗发水2瓶,香皂5个,牙刷12双
洗发水2瓶,香皂10个,牙刷10双
洗发水2瓶,香皂15个,牙刷8双
洗发水2瓶,香皂20个,牙刷6双
洗发水2瓶,香皂25个,牙刷4双
洗发水2瓶,香皂30个,牙刷2双
洗发水2瓶,香皂35个,牙刷0双
洗发水3瓶,香皂0个,牙刷11双
洗发水3瓶,香皂5个,牙刷9双
洗发水3瓶,香皂10个,牙刷7双
洗发水3瓶,香皂15个,牙刷5双
洗发水3瓶,香皂20个,牙刷3双
洗发水3瓶,香皂25个,牙刷1双
洗发水4瓶,香皂0个,牙刷8双
洗发水4瓶,香皂5个,牙刷6双
洗发水4瓶,香皂10个,牙刷4双
洗发水4瓶,香皂15个,牙刷2双
洗发水4瓶,香皂20个,牙刷0双
洗发水5瓶,香皂0个,牙刷5双
洗发水5瓶,香皂5个,牙刷3双
洗发水5瓶,香皂10个,牙刷1双
洗发水6瓶,香皂0个,牙刷2双
洗发水6瓶,香皂5个,牙刷0双
  1. 一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

n=8*(10**-5)
num1 = 1
num2 = 2
num3 = 0
num4 = 0
while  1:
    num4 += 1
    num3 = num2**num1
    n *= num3
    if n > 8848.13:
        print('对折%d次后的高度%s'%(num4,n))
        break
结果:
    对折27次后的高度10737.41824

  1. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

num = 2
for i in range(1,13):
    d = i
    if d < 3:
        num = 2
        print('%d月的兔子总数%d'%(d,num))
    if 3 <= d <=5:
        num += 2
        print('%d月的兔子总数%d'%(d,num))
    if d > 5:
        num += 2 * (d-4)
        print('%d月的兔子总数%d' % (d, num))
结果:
1月的兔子总数2
2月的兔子总数2
3月的兔子总数4
4月的兔子总数6
5月的兔子总数8
6月的兔子总数12
7月的兔子总数18
8月的兔子总数26
9月的兔子总数36
10月的兔子总数48
11月的兔子总数62
12月的兔子总数78

  1. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。

    237

  2. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值

x = random.randint(1000,9999)
a = ((x % 10)+5)%10           #个位
b = ((x % 100 // 10)+5)%10
c = ((x % 1000 // 100)+5)%10
d = ((x // 1000)+5)%10
print('%d加密后的值为:%d%d%d%d'%(x,a,b,c,d))
结果:
3819加密后的值为:4638
6557加密后的值为:2001
  1. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。

num1 = random.randint(1, 10000)
j = num1
print(j,end='=')
active = 1
while j>1:
​
    for i in range(2, j+1):
        if j % i == 0:
            j = j // i
            if j == 1:
                print(i)
            else:
                print(i,end='*')
                break
结果:
9999=3*3*11*101
5820=2*2*3*5*97
84=2*2*3*7
  1. 本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。

money = 10000
​
interest = 0.003
n = 5
c = 0
for i in range(1,n+1):
      money += money * interest
print('%d年的利息加本金为:%s'%(n,money))
结果:
5年的利息加本金为:10150.90270405243
  1. 输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)

x = random.randint(1,100000)
c = str(x)
length = len(c)
print(length, x)
num = 0
num1 = 0
for i in range(1,length+1):
    num = (x % (10**i)) // (10**(i-1))
    num1 +=num
print('%d的各位数上之和为:%d'%(x,num1))
结果:
    5 35411
    35411的各位数上之和为:14
    6 438066
    438066的各位数上之和为:27

  1. 求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)

    a = random.randint(1,50)
    b = random.randint(1,50)
    c =0
    print(a,b)
    if a >= b:
        c = b
    else:
        c = a
    for x in range(c,0,-1):
        if a % x == 0  and b % x ==0:
            i = a // x
            j = b // x
            n = i * j * x
            print('%d和%d的最大公约数和最小公倍数为:%d %d'%(a,b,x,n))
    ​
            break
    结果:
    2 5
    2和5的最大公约数和最小公倍数为:1 10
    6 24
    6和24的最大公约数和最小公倍数为:6 24
    14 19
    14和19的最大公约数和最小公倍数为:1 266
    ​
举报

相关推荐

week 1

Newstar_week1_week2_wp

前端week1

CTF练习WP(Week 1)

2024-NewStarCTF-WEEK1

[week1] newstar ctf ezAndroidStudy

NewStarCTF 2023 公开赛道 Web week1-week2

hgame2022re week1

0 条评论