安财《Python语言程序设计》程序设计题

题目如果有缺少,可以私聊我一下,我补上。补充的题目我都放在了最后。

  1. 在商场购买某商品时,若所花的钱x在下述范围内,所付钱y按对应的折扣支付:
    y={xx<10000.9x1000≤x<20000.8x2000≤x<30000.7xx≥3000\begin{array}{l} y=\left\{\begin{array}{cc} x & x<1000 \\ 0.9 x & 1000 \leq x<2000 \\ 0.8 x & 2000 \leq x<3000 \\ 0.7 x & x \geq 3000 \end{array}\right. \end{array} y=⎩⎪⎪⎨⎪⎪⎧​x0.9x0.8x0.7x​x<10001000≤x<20002000≤x<3000x≥3000​​

    x=eval(input("请输入所花钱x:"))
    if x>=3000:y=0.7*x
    elif x>=2000:y=0.8*x
    elif x>=1000:y=0.9*x
    else:y=x
    print("实际应付金额{:.2f}元".format(y))
    
  2. 编写计算分段函数的程序:
    y={sin⁡x+x2+1,x>5ex+log⁡5x+x5,0<x≤5cos⁡x−x3+3x,x≤0y=\left\{\begin{array}{ll} \sin x+\sqrt{x^{2}+1}, & x>5 \\ e^{x}+\log _{5}{x}+\sqrt[5]{x}, & 0<x \leq 5 \\ \cos x-x^{3}+3 x, & x \leq 0 \end{array}\right. y=⎩⎨⎧​sinx+x2+1​,ex+log5​x+5x​,cosx−x3+3x,​x>50<x≤5x≤0​
    输入x的值,输出函数y的值。

    #第一种方法:
    import math
    x=eval(input("请输入x的值:"))
    if x>=5:y=math.sin(x)+math.sqrt(x**2+1)
    elif x>=0:y=math.exp(x)+math.log(x,5)+x**(1/5)
    else:y=math.cos(x)-x**3+3*x
    print("分段函数y的值是:",y)
    
    #第二种方法
    import math
    x=eval(input("请输入x的值:"))
    if x>5:y=math.sin(x)+math.sqrt(x**2+1)
    elif x>0 and x<=5:y=math.exp(x)+math.log(x,5)+x**(1/5)
    else:y=math.cos(x)-x**3+3*x
    print("分段函数y的值是:",y)
    
    #第三种方法
    import math
    x=eval(input("请输入x的值:"))
    if x>5:y=math.sin(x)+math.sqrt(x**2+1)
    elif 0<x<=5:y=math.exp(x)+math.log(x,5)+x**(1/5)
    else:y=math.cos(x)-x**3+3*x
    print("分段函数y的值是:",y)
    
  3. 编写程序,实现分段函数计算,如下表所示。当x=7,输出y的值。

    xxx yyy
    x<0x<0x<0 000
    0⩽x<50\leqslant x<50⩽x<5 xxx
    5⩽x<105\leqslant x<105⩽x<10 3x−53x-53x−5
    10⩽x<2010\leqslant x<2010⩽x<20 0.5x−20.5x-20.5x−2
    20⩽x20\leqslant x20⩽x 000
    x = input('Please input x:')
    x = eval(x)
    if x<0 or x>=20:print(0)
    elif 0<=x<5:print(x)
    elif 5<=x<10:print(3*x-5)
    elif 10<=x<20:print(0.5*x-2)
    
  4. 从键盘上任意输入一个自然数,判断数是否素数。如输入11,则显示:11是素数

    n=eval(input("请输入一个自然数:"))
    tag=True
    for i in range(2,n):if n%i==0:tag=Falsebreak
    m="是素数" if tag else "不是素数"
    print(n,m)
    
  5. 一元二次方程求解

    编程求解一元二次方程ax2+bx+c=0,方程中的a,b,c系数从键盘输入(提示:分支嵌套)编程求解一元二次方程a x^2+b x+c=0,方程中的a,b,c系数从键盘输入(提示:分支嵌套)编程求解一元二次方程ax2+bx+c=0,方程中的a,b,c系数从键盘输入(提示:分支嵌套)

    注解:注解:注解:

    ​ 大部分情况下是根据求根公式来求解,即:大部分情况下是根据求根公式来求解,即:大部分情况下是根据求根公式来求解,即:

    ​ x=−b±b2−4ac2ax=\frac{-b \pm \sqrt{b^{2}-4 a c}}{2 a}x=2a−b±b2−4ac​​

    ​ 判别式:判别式:判别式:

    ​ 利用一元二次方程的判别式(Δ=b2−4ac)可以判断方程的根的情况。可以判别方程根的情况。利用一元二次方程的判别式(\Delta=b^{2}-4 a c) 可以判断方程的根的情况。可以判别方程根的情况。利用一元二次方程的判别式(Δ=b2−4ac)可以判断方程的根的情况。可以判别方程根的情况。

    ​ 一元二次方程ax2+bx+c=0(a≠0)的根与根的判别式,有如下关系:一元二次方程a x^2+b x+c=0(a\not=0)的根与根的判别式,有如下关系:一元二次方程ax2+bx+c=0(a​=0)的根与根的判别式,有如下关系:

    ​ (1)当Δ>0时,方程有两个不相等的实数根;(1)当 \Delta>0 时, 方程有两个不相等的实数根;(1)当Δ>0时,方程有两个不相等的实数根;
    ​ (2)当Δ=0时,方程有两个相等的实数根;(2)当 \Delta=0 时, 方程有两个相等的实数根;(2)当Δ=0时,方程有两个相等的实数根;
    ​ (3)当Δ<0时,方程无实数根,但有2个共轭复根。(3)当 \Delta<0 时, 方程无实数根, 但有 2 个共轭复根。(3)当Δ<0时,方程无实数根,但有2个共轭复根。

    import math
    a=eval(input("A="))
    b=eval(input("B="))
    c=eval(input("C="))
    delta=b**2-4*a*c
    if a==0:if b==0:print("方程无意义!!")else:x=-c/bprint("方程有单根:",x)
    else:if delta>0:q=math.sqrt(delta)/(2*a)p=-b/(2*a)x1=p+qx2=p-qprint("两个不相等的实根",x1,x2)elif delta==0:p=-b/(2*a)print("两个相等的实根:",p)else:print("方程无解!")
    
  6. 编程产生菲波拉契数列20项,例如:0 1 1 2 3 5 8 13 21 ……

    #第一种方法
    x0,x1=0,1
    for n in range(0,20):print(x0,end=" ")x2=x1+x0x0=x1x1=x2
    
    #第二种方法
    x0,x1=0,1
    for n in range(0,20):print(x0,end=" ")x0,x1=x1,x0+x1
    
  7. 猴子摘桃

    猴子第一天摘了若干个桃子,当天吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个,到第10天早上想再吃时,见只剩下一个桃子,问第一天共摘了多少个桃子?

    #第一种方法
    x=1
    for d in range(0,9):x=(x+1)*2
    print(x)
    
    #第二种方法
    x0=1
    for d in range(0,9):x1=(x0+1)*2x0=x1
    print(x0)
    
  8. 韩信点兵

    韩信点兵的典故:韩信带1500名士兵去打仗,战死四五百人,3人一排多出2人,5人一排多出4人,7人一排多出6人,编程计算剩下
    士兵的人数。

    #第一种方法
    for i in range(1000,1101):if i%3==2 and i%5==4 and i%7==6:print('剩下士兵共有{}人'.format(i))
    
    #第二种方法
    for i in range(1100,1001,-1):if i%3==2 and i%5==4 and i%7==6:print('剩下士兵共有{}人'.format(i))
    
    #第三种方法
    i=1000
    while i<=1100:if i%3==2 and i%5==4 and i%7==6:print('剩下士兵共有{}人'.format(i))i=i+1
    
    #第四种方法
    i=1100
    while i>=1000:if i%3==2 and i%5==4 and i%7==6:print('剩下士兵共有{}人'.format(i))i=i-1
    
  9. 编程分别计算100以内(含100)奇数与偶数的和。

    s1,s2=0,0
    for i in range(1,101):if i%2==0:s2=s2+ielse:s1=s1+i
    print("奇数的和是:{},偶数的和是:{}".format(s1,s2))
    
  10. 编程计算前30项的和:s=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+4+…+n)

    t,sum=0,0
    for i in range(1,31):t = t + isum = sum + t
    print("多项式前30项的和是:",sum)
    
  11. 给钱问题

    一个富翁试图与陌生人做一笔换钱生意,换钱规则为:陌生人每天给富翁10万元钱,直到满一个月(30天);而富翁第一天给陌生人1分钱,第2天给2分钱,第3天给4分钱,…,富翁每天给穷人的钱是前一天的两倍,直到满一个月,分别显示富翁给陌生人的钱和陌生人给富翁的钱各是多少?

    x0=0.01
    s =0
    for i in range(1,31):s=s+100000x1=2 * x0x0=x1
    print("富翁赚的钱{:.2f},陌生人赚的钱{:.2f}".format(s,x0))
    
  12. 闰年

    编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。

    x = input('Please input an integer of 4 digits meaning the year:')
    x = eval(x)
    if x%400==0 or (x%4==0 and not x%100==0):print('Yes')
    else:print('No')
    
  13. 小球自由落体问题

    一小球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    s=100
    h0=100
    for i in range(1,10):h1=h0/2s=s+2*h1h0=h1
    print("小球一共经过了{:.2f}米,第10次的高度{:.2f}米".format(s,h0))
    
  14. 求阶乘

    从键盘输入任意一个正整数,编程计算该数的阶乘 如:输入5,阶乘结果120 。

    n=eval(input("请输入一个正整数:"))
    p=1
    for i in range(1,n+1):p=p*i
    print("n! =",p)
    
  15. 99乘法表

    输出如下格式的99乘法表。

    1×1=11\times1=11×1=1
    2×1=22\times1=22×1=2 2×2=42\times2=42×2=4
    3×1=33\times1=33×1=3 3×2=63\times2=63×2=6 3×3=93\times3=93×3=9
    4×1=44\times1=44×1=4 4×2=84\times2=84×2=8 4×3=124\times3=124×3=12 4×4=164\times4=164×4=16
    5×1=55\times1=55×1=5 5×2=105\times2=105×2=10 5×3=155\times3=155×3=15 5×4=205\times4=205×4=20 5×5=255\times5=255×5=25
    6×1=66\times1=66×1=6 6×2=126\times2=126×2=12 6×3=186\times3=186×3=18 6×4=246\times4=246×4=24 6×5=306\times5=306×5=30 6×6=366\times6=366×6=36
    7×1=77\times1=77×1=7 7×2=147\times2=147×2=14 7×3=217\times3=217×3=21 7×4=287\times4=287×4=28 7×5=357\times5=357×5=35 7×6=427\times6=427×6=42 7×7=497\times7=497×7=49
    8×1=88\times1=88×1=8 8×2=168\times2=168×2=16 8×3=248\times3=248×3=24 8×4=328\times4=328×4=32 8×5=408\times5=408×5=40 8×6=488\times6=488×6=48 8×7=568\times7=568×7=56 8×8=648\times8=648×8=64
    9×1=99\times1=99×1=9 9×2=189\times2=189×2=18 9×3=279\times3=279×3=27 9×4=369\times4=369×4=36 9×5=459\times5=459×5=45 9×6=549\times6=549×6=54 9×7=639\times7=639×7=63 9×8=729\times8=729×8=72 9×9=819\times9=819×9=81
    for i in range(1,10):for j in range(1,i+1):print("{}*{}={:2d}" .format (i,j,i*j),end=" ")print()
    
  16. 百元百鸡

    使用循环方法求解百钱买百鸡问题,假设公鸡5元一只,母鸡3元一只,小鸡1元一只,现在100元钱想买100只鸡,编程计算买鸡的方案,有多少种买法。

    s=0
    for x in range(1,20):                      for y in range(1,33):                  z = 100 - x - y                     if 5*x + 3*y + z/3 == 100:       print('公鸡:%d 母鸡:%d 小鸡:%d'%(x, y, z))s=s+1
    print('有以上{}种卖法'.format(s))
    
  17. 使用列表生成式方法求解百钱买百鸡问题。
    假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?

    l=[(i,j,k) for i in range(0,100) for j in range(0,100) for k in range(0,100) if i+j+k==100 and 5*i+3*j+k/3==100]
    for i in l:print(i)
    
  18. 绘制六边形

    用turtle库绘制红色线条的六边形,线条大小5像素,每边长度80。

    import turtle
    turtle.pensize(5)
    turtle.pencolor("red")
    for i in range(6):turtle.fd(80)turtle.left(60)
    

    输出效果:

  19. 绘制平行四边形

    用turtle库绘制平行四边形,相邻两边长度分别为150和80,对角120度和60度,线条粗6像素,颜色为绿色。

    #第一种方法
    import turtle
    turtle.pensize(6)
    turtle.pencolor("green")
    turtle.fd(150)
    turtle.left(60)
    turtle.fd(80)
    turtle.left(120)
    turtle.fd(150)
    turtle.left(60)
    turtle.fd(80)
    
    #第二种方法
    import turtle
    turtle.pensize(6)
    turtle.pencolor("green")
    turtle.fd(150)
    for i in range(1,4):if i%2==1:turtle.left(60)turtle.fd(80)else:turtle.left(120)turtle.fd(150)
    

    输出效果:

  20. 编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。假设向程序提供以下输入:
    without,hello,bag,world
    则输出为:
    bag,hello,without,world

    x=input("x=")
    l=x.split(",")
    l.sort()
    print(",".join(l))
    
  21. 编写一个程序来计算输入中单词的频率。 按字母顺序对键进行排序后输出。
    假设为程序提供了以下输入:
    New to Python or choosing between Python 2 and Python 3 Read Python 2 or Python 3
    然后,输出应该是:
    2:2
    3:2
    New:1
    Python:5
    Read:1
    and:1
    between:1
    choosing:1
    or:2
    to:1

    x=input("x=")
    l=x.split()
    d={}
    for i in l:                        d[i]=d.get(i,0)+1
    l2=sorted(d)
    for i in l2:                       print("{}:{}".format(i,d[i]))
    
  22. 编程:输入一段英文文本,统计该文本中单词的出现次数。比如"How are you.how are you"的统计结果是{“how”:2,“are”:2,“you”:2},要求用函数调用的方法实现。

    def wordnum(s):for c in ".,/?:":s=s.replace(c,' ')words=s.lower().split()dic_s={}for word in words:dic_s[word]=dic_s.get(word,0)+1return dic_ss=input("请输入英文文本:")
    dic_s=wordnum(s)
    print(dic_s)
    
  23. 依次输入三个整数放在一个列表中,请把这三个数由小到大输出。

    l=[]
    for i in range(3):x=int(input("x="))l.append(x)
    l.sort()
    for i in l:print(i,end=" ")
    
  24. 使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。然后程序应该打印字典。
    假设向程序提供以下输入:8
    则输出为:
    {1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64}

    n=eval(input("n="))
    d={}
    for i in range(1,n+1):d[i]=i*i
    print(d)
    
  25. 使用列表生成式随机产生10个两位的正整数,存入列表ls中,输出ls中的这10个随机数,然后对这10个随机数求平均值,并输出统计高于平均值的数有多少个。

    from random import *
    ls=[randint(10,99) for i in range(10)]
    print(ls)
    pj=sum(ls)/10
    n=0
    for i in ls:if i>pj:n=n+1
    print(n)
    
  26. 编写一个程序,它将找到1000到3000之间的所有这些数字(均包括在内),这样数字的每个数字都是偶数。 获得的数字应以逗号分隔的顺序打印在一行上。

    values = []
    for i in range(1000, 3001): s = str(i) if (int(s[0])%2==0) and (int(s[1])%2==0) and (int(s[2])%2==0) and (int(s[3])%2==0): values.append(s)
    print (",".join(values))
    
  27. 编写一个程序,输出2000到3200(含2000和3200)之间所有是7的倍数,但不是5的倍数的整数。要求:用列表保存符合条件的整数,输出结果各整数之间用逗号分隔,并输出在一行上。

    l=[]
    for i in range(2000,3201):if i%7==0 and i%5!=0:l.append(str(i))
    print(",".join(l))
    
  28. 编写一个程序,接收一系列单个空格分隔的单词作为输入,在删除所有重复的单词并按字母升序排序后打印这些单词。
    假设向程序提供以下输入:
    hello world and practice makes perfect and hello world again
    则输出为:
    again and hello makes perfect practice world

    x=input("x=")
    l=x.split()
    s=set(l)
    l2=list(s)
    l2.sort()
    for i in l2:print(i,end=" ")
    
  29. 编写一个接收句子并计算字母和数字的程序。假设为程序提供了以下输入:
    Hello world! 123
    然后,输出应该是:
    字母 10
    数字 3

    d={'字母':0,'数字':0}
    x=input("x=")
    for i in x:if i.isdigit():d['数字']=d['数字']+1elif i.isalpha():d['字母']=d['字母']+1
    for k,v in d.items():print("{} {}".format(k,v))
    
  30. 使用列表生成式来求列表中的每个奇数。 该列表由一系列逗号分隔的数字输入。
    假设为程序提供了以下输入:
    [1,2,3,4,5,6,7,8,9]
    然后,输出应该是:
    [1, 3, 5, 7, 9]

    l=eval(input("l="))
    l2=[i for i in l if i%2==1]
    print(l2)
    
  31. 定义函数,将一个四位数的整数的每个数字分离出来,并将四位数返回。主程序要求输入整数,并输出这四个数字。

    def fenli(n):    n1=int(n/1000)    n2=int(n/100%10)    n3=int(n/10%10)    n4=n%10    return (n1,n2,n3,n4)
    n=int(input("请输入一个四位数的整数:"))
    if len(str(n))!=4:    print("请输入一个四位数!")
    else:    a,b,c,d=fenli(n)    print(a,b,c,d)
    
  32. 已知字符串a=“aAsmr3idd4bgs7Slsf9eAF”,要求编写程序,将字符串中的数字取出,并输出成一个新的字符串。要求用函数实现数字的提取,并返回字符串。

    def desp(s):    dig_s=""    for ch in s:      if ch.isdigit():           dig_s+=ch    return dig_s
    s=input("请输入字符串:")
    print("该字符串中的数字构成的字符串为:",desp(s))
    
  33. 编写一个函数,实现摄氏温度和华氏温度之间的换算,换算公式为F=9C/5+32,要求输入单位是摄氏度的值,能够显示相应的华氏温度值,反之亦然。

    def converse(t,n):if n==1:return 9*t/5+32else:return (t-32)*5/9
    t=eval(input("请输入温度值:"))
    n=int(input("请输入1或2,输入1表示输入的是摄氏温度,2表示华氏温度:"))
    if n==1:print("华氏温度值为:",converse(t,1))
    else:print("摄氏温度为:",converse(t,2))
    
  34. 对列表nums = [0, 7, 0, 1, 2, 1, 5, 1, 7, 8, 0, 67, 1, 3, 4]进行排序,将0放到最后。

    nums = [0, 7, 0, 1, 2, 1, 5, 1, 7, 8, 0, 67, 1, 3, 4]
    print(sorted(nums,key=lambda x:1 if x==0 else 0))
    
  35. 用递归方法求数列“1,1,1,3,5,9,17,31……”的前20项(要求每行输出5个数)

    def fun(n):    if n in (1,2,3):       return 1    else:       return fun(n-1)+fun(n-2)+fun(n-3)
    for i in range(1,21):    print("{:>8}".format(fun(i)),end=' ' if i%5!=0 else '\n')
    
  36. 用函数调用的方法求:

    Cmn=m!n!×(m−n)!C_{m}^{n}=\frac{m !}{n ! \times(m-n) !}Cmn​=n!×(m−n)!m!​

    def fac(n):  if n==1 or n==0:return 1else:return n*fac(n-1)
    m=int(input("请输入正整数m:"))
    n=int(input("请输入正整数n:"))
    if m<n:m,n=n,m
    else:f=fac(m)/(fac(n)*fac(m-n))
    print("f=",f)
    
  37. 编写函数showMsg(n,name),它可以输出n行字符串“Happy Birthday ***",如果“***”为小明,则输出n行“Happy Birthday 小明”。

    def showMsg(n,name):s="Happy Birthday" +name+"\n"print(n * s)
    showMsg(10,"小明")
    
  38. 编写函数avg(lst),参数lst是一个列表,它可以返回列表元素的整数平均值return int(sum(lst)/len(lst)),调用avg(lst)函数求每个学生的平均成绩。已知成绩列表s={‘小李’:[77,54,57],‘小张’:[89,66,78],‘小陈’:[90,93,80],‘小杨’:[69,58,93]}。 输出结果:{‘小李’:62,‘小张’:77,‘小陈’:87,‘小杨’:73}。

    def avg(lst):return int(sum(lst)/len(lst))
    score_dict={'小李':[77,54,57],'小张':[89,66,78],'小陈':[90,93,80],'小杨':[69,58,93]}
    avg_dict={}
    for key,value in score_dict.items():avg_dict[key]=avg(value)
    print(avg_dict)
    
  39. 编写一个函数, 接收字符串参数(其中字符串中包含大小写字母及其他字符), 返回一个元组,元组的第一个值为大写字母的个数, 第二个值为小写字母个数。

    def Fun(str):     #定义函数,接受一个字符串参数upper = lower = 0     #定义计数器for i in str:     #遍历字符串if i.isupper():     #如果为大写字母,upper的值加一upper += 1elif i.islower():     #如果为小写,lower值加一lower += 1else:continue     #既不是大写又不是小写,继续执行return upper,lower     #返回大写和小写的数值
    print(Fun('Hello World!'))
    
  40. 从键盘上任意输入三个数x,y,z,然后比较它们的大小并进行由小到大的排序输出。

    x,y,z=eval(input("输入 x,y,z,分别用逗号分隔:"))
    if  x>y:x,y=y,x
    if y>z:y,z=z,yif x>y:x,y=y,x
    print("排序后:",x,y,z)
    
  41. 求两个整数m,n的最大公约数,m和n由键盘输入。

    m,n=eval(input("请输入两个自然数,用逗号分隔:"))
    r=m%n
    while r!=0:m=nn=rr=m%n
    print("最大的公约数:",n)
    
  42. 编写一个程序,该程序接受控制台以逗号分隔的数字序列,并生成包含每个数字的列表和元组。假设向程序提供以下输入:
    34岁,67年,55岁,33岁,12日,98年
    则输出为:
    [‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’]
    (‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’)
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入,方法可以将列表转换为元组。

    import re  #导入正则表达式re模块
    values=input('请输入数字序列:')
    k=re.findall(r'[0-9]+',values) #findall函数将values中匹配到的数字对象导入到列表并返回,k为列表
    t=tuple(k)
    print(k)
    print(t)
    
  43. 使用for循环依次输入三个整数放在一个列表,请把这三个数由小到大输出。

    ls = []
    for i in range(3):x = eval(input())ls.append(x)
    ls.sort()
    print(ls)
    
  44. 有计算机成绩:{‘张三’: 90, ‘王二’: 88,‘刘五’: 95}和数学成绩:math={‘张三’: 84, ‘李四’: 87, ‘王二’: 93,},把这两门课成绩填入总成绩表:{‘张三’: [0,0], ‘李四’:[0,0], ‘王二’: [0,0],‘刘五’:[0,0]}。总成绩表条目中的值是一个列表,分别存放了计算机和数学成绩,如果某门课没有成绩,默认为0分。

    computer = {'张三': 90, '王二': 88,'刘五': 95}
    math = {'张三': 84, '李四': 87, '王二': 93,}
    all_courses = {'张三': [0, 0], '李四': [0, 0], '王二': [0, 0],'刘五': [0, 0]}
    for name in all_courses.keys():if name in computer:all_courses[name][0] = computer[name]if name in math:all_courses[name][1] = math[name]
    print(all_courses)
    
  45. 使用集合的差集运算,求100以内的质数。

    s0 = {i for i in range(1, 101)}
    s1 = set()
    s1.add(1)
    for i in range(2, 101):for j in range(2, i):if i % j == 0:s1.add(i)breakelse:continue
    s = s0 - s1
    print(s)
    
  46. 学校准备从2019级学生(学号:20190001~20195000)中,抽取50名学生代表学校参加某知识竞赛。编写代码实现这个功能。要求:使用集合保存这些学生的学号。

    import random
    num = range(20190001, 20195001)
    nums = random.sample(num, 50)
    l = set(nums)
    print(l)
    
  47. 学生基本信息如下表所示,统计每个年龄的人数,并详细显示每个年龄的学生信息。

    姓名 性别 年龄
    李明 19
    杨柳 18
    张一凡 18
    许可 20
    王小小 19
    陈心 19
    d = {'李明': ('男', 19), '杨柳': ('女', 18),'张一凡':('男', 18), '许可':('女', 20), '王小小':('女',19), \'陈心':('女',19)}
    ages = {}
    di = {}
    for t in d.values():di[t[1]] = []
    for k, v in d.items():ages[v[1]] = ages.get(v[1], 0) + 1di[v[1]].append((k, v[0]))
    for j in ages:print('{}岁的同学有{}位'.format(j, ages[j]))
    print('每个年龄的学生信息', di)
    
  48. 下表所示是学生购物调查表。根据该表完成以下任务:
    1)分别统计男生、女生每一类消费项目的总金额。
    2)分别统计男女人数。结果是一个字典,键是性别,值是性别对应的人数。
    3)分别统计男生、女生单类消费金额的最大值。

    性别 书本 文具 服饰 零食 日用品
    10 30 300 150 600
    200 10 300 300 100
    200 100 1000 100 200
    50 20 300 100 200
    200 50 400 100 200
    100 10 500 150 800
    200 100 500 300 200
    300 50 0 10 50
    100 10 500 40 500
    200 50 200 100 100
    ls = [{'性别':'女','书本':10,'文具':30,'服饰':300,'零食':150,'日用品':600},{'性别':'女','书本':200,'文具':10,'服饰':300,'零食':300,'日用品':100},{'性别':'男','书本':200,'文具':100,'服饰':1000,'零食':100,'日用品':200},{'性别':'男','书本':50,'文具':20,'服饰':300,'零食':150,'日用品':600},{'性别':'男','书本':200,'文具':50,'服饰':400,'零食':100,'日用品':200},{'性别':'女','书本':100,'文具':10,'服饰':500,'零食':150,'日用品':800},{'性别':'女','书本':200,'文具':100,'服饰':500,'零食':300,'日用品':200},{'性别':'男','书本':300,'文具':50,'服饰':0,'零食':10,'日用品':50},{'性别':'男','书本':100,'文具':10,'服饰':500,'零食':40,'日用品':500},{'性别':'男','书本':200,'文具':50,'服饰':200,'零食':100,'日用品':100}]# 1)分别统计男生、女生每一类消费项目的总金额。
    male_buy = {}
    female_buy = {}
    for dic in ls:for k,v in dic.items():if k != '性别':if dic['性别'] == '男':male_buy[k] = male_buy.get(k,0) + velse:female_buy[k] = female_buy.get(k,0) + v
    print('男生、女生每一类消费项目的消费总金额如下所示:')
    print('  ', end = '\t')
    for key in male_buy.keys():if key != '性别':print(key, end = '\t')
    print()
    print('男生', end = '\t')
    for value in male_buy.values():if key != '性别':print(value, end = '\t')
    print()
    print('女生', end = '\t')
    for value in female_buy.values():if key != '性别':print(value, end = '\t')
    print()# 2)分别统计男女人数。结果是一个字典,键是性别,值是性别对应的人数。
    d_num = {}
    d_num['男'] = 0
    d_num['女'] = 0
    for dic in ls:if dic['性别'] == '男':d_num['男'] += 1if dic['性别'] == '女':d_num['女'] += 1
    print(d_num)# 3)分别统计男生、女生单类消费金额的最大值。
    l = []
    d1 = {}
    d2 = {}
    for key in ls[0].keys():if key != '性别':l.append(key)
    for i in l:d1[i] = []d2[i] = []
    for d in ls:if d['性别'] == '男':for j in l:d1[j].append(d[j])if d['性别'] == '女':for k in l:d2[k].append(d[k])
    print('男生、女生单类消费金额的最大值如下所示:')
    print('  ', end = '\t')
    for i in l:print(i, end = '\t')
    print()
    print('男生', end = '\t')
    for i in l:print(max(d1[i]), end = '\t')
    print()
    print('女生', end = '\t')
    for i in l:print(max(d2[i]), end = '\t')
    

安财《Python语言程序设计》程序设计题相关推荐

  1. 嵩天-Python语言程序设计程序题--第四周:程序的控制结构

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  2. 嵩天-Python语言程序设计程序题--第一周:Python基本语法元素

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  3. 嵩天-Python语言程序设计程序题--第二周:基本图形绘制

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  4. 嵩天-Python语言程序设计程序题--第三周:基本数据类型

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  5. 嵩天-Python语言程序设计程序题--第六周:组合数据类型

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  6. 嵩天-Python语言程序设计程序题--第五周:函数和代码复用

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  7. 嵩天-Python语言程序设计程序题--第九周:Python计算生态纵览

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  8. 嵩天-Python语言程序设计程序题--第八周:程序设计方法学

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  9. 嵩天-Python语言程序设计程序题--第七周:文件和数据格式化

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  10. python语言必刷题——BMI值的计算

    本文涵盖了三种基本的BMI计算类型!! 输入身高体重并计算BMI 当前计算BMI的程序中 height, weight 都是固定值,请将程序更改为从键盘获取输入,再计算 BMI. 先输入身高(单位:米 ...

最新文章

  1. expdp导出数据库实例应用
  2. 波场DApp数据分析
  3. 投资互联网+企业级IT呈现三大新趋势
  4. EMC存储产品分析介绍 (一)
  5. redis集群信息分析-cluster info-cluster nodes
  6. IPFS的相关操作命令
  7. python注册登陆程序未响应_SpringBoot实现登录注册常见问题解决方案
  8. 深入浅出计算机组成原理04:存储和IO系统
  9. android关闭人脸检测功能,【Android知识】录像预览模式下打开人脸检测
  10. IDEA类注释模板设置
  11. 如何利用信息差赚钱?分享二个案例给你!
  12. Linux 根分区扩容
  13. 家电哥回馈社会 心系老人忙公益
  14. 网易2016研发工程师编程题--完全解析
  15. Android Google Face API 增强现实教程
  16. 真实评测:华为nova8和红米k30至尊版哪个好-参数区别对比
  17. 传奇手游开服教程:怎么开传奇手游?开传奇手游需要准备什么?
  18. 国内大陆有哪些芯片公司处于世界前10?一起看看!
  19. JS中的数组空位处理
  20. 3、Mybatis-Plus异常之There is no getter for property named ‘ew‘ in ‘class解决方案

热门文章

  1. 关键词搜索API接口之1688平台
  2. vue可填写表格_VUE写一个简单的表格实例
  3. torch.linspace()
  4. html中百分比是怎样计算的,css 中的百分比计算方法
  5. 华为OD机试题 - 星际篮球争霸赛(JavaScript)| 包含代码编写思路
  6. 跨境电子商务及支付业务管理体系的构建
  7. 女生玩游戏专属神器,华为平板M5青釉版高颜值、强性能
  8. 如何批量设置 Word 文档仅允许批注或修订?
  9. java网站页面静态化方案
  10. 表维护视图的F4增强