重庆大学python希冀题库

初学者,大一之前从未接触过任何与编程相关的,所以下边的代码仅仅是在希冀上显示运行正确了,有冗余和不妥之处请见谅。

第二到三章

程序片段题

小费,税和消费总额

编程题

平面上两点距离坐标

第四章

程序片段题

1.打印拐形图案

ord()——输出字母对应的ASCII值,chr()——刚好与其作用相反

'sep'.join()——对字符串,元组,列表中元素以指定的分隔符进行连接

生成一个新的字符串,sep指分隔符,可以为空,a可为字符串,元组,字典,列表(注意对字符串操作的话,是对单个字母)

2.计算列表的度

3.把长度为2n的列表分成n对,使得每一对的最小值的和最大

先找出什么样的排序可以使最小值和最大,再写

4.斐波那契数列

(但数字较大时,运用递归运行时间更长)

5.找出不是共有元素,升序输出

6.使用列表生成指定范围偶数列

7.数列元素重复n次后平方形成新列表,去除重复元素

编程题

1.把列表中个位正整数组合成一个最大的整数

lst=eval(input())
lst.sort(reverse=True)
sum=''
for i in range(len(lst)):
    sum+=str(lst[i])
print(int(sum))
    
lst=eval(input())
lst.sort(reverse=True)
max=''.join(map(str,lst))
print(max)

2.找出只出现一次的数并升序输出

lst=eval(input())
lst1=[]
for x in lst:
    if lst.count(x)==1:
        lst1.append(x)
if lst1==[]:
    print("False")
else:
    lst1.sort()
    print(','.join(map(str,lst1)))

3.计算平均值并输出整数部分(根据结果判断是否输出小数部分)

lst=eval(input())
avg=sum(lst)/len(lst)
if avg%1==0:
    print("%d" %(avg))
else:
    print("%.2f" %(avg))

4.列表生成及循环左移

n=eval(input())
lst=list(range(1,n+1))
rst=lst.copy()
for x in range(len(lst)-1):
    lst[x]=rst[x+1]
lst[-1]=rst[0]
print(lst)

(题目要求用for循环)

n=eval(input())
lst=list(range(1,n+1))
lst.remove(1)
lst.append(1)
print(lst)

5.删除列表重复值

lst=eval(input())
for x in lst[::-1]:
    a=lst.count(x)
    while a>1:
        lst.remove(x)
        a=a-1
print(lst)
lst=eval(input())
nst=lst.copy()
for x in lst:
    a=nst.count(x)
    while a >1:
        nst.remove(x)
        a=a-1
print(nst)

6.姓名和成绩配对后形成一个列表

lName=input().split(",")
lGuade=eval(input())
lst=[]
for x in range(len(lName)):
    lst.append([lName[x],lGuade[x]])
print(lst)

7.生成指定长度的等差数列

n,m,l=eval(input())
lst=range(n,n+m*l,l)
print(list(lst))

 8.从一个列表中取出第n个元素,重复m次放到末尾

str=input()
lst=[int(x) for x in str.split(',')]
n,m=eval(input())
if n<len(lst) and n>=-len(lst):
    lst.extend([lst[n]]*m)
    print(lst)
else:
    print("error")

9.删除列表中指定位置元素

lst=eval(input())
n,m=eval(input())
if n<len(lst) and m<len(lst) and n>=-len(lst) and m>=-len(lst) and n<=m:
    for x in range(n,m):
        lst.remove(lst[x])
    print(lst)
else:
    print("error")
nst=lst[n:m]
   for x in lst:
       if nst.count(x)!=0:
           lst.remove(x)
   

10.删除列表中的最大元素和最小元素

lst=eval(input())
max=max(lst)
min=min(lst)
while lst.count(max)!=0:
    lst.remove(max)
while lst.count(min)!=0:
    lst.remove(min)
print(lst)

 11.把0移到列表尾端

lst=eval(input())
zeroNo=lst.count(0)
while lst.count(0)!=0:
    lst.remove(0)
for x in range(zeroNo):
    lst.append(0)
print(lst)

12.找出列表中素数并放新列表中输出

def primeNo(num):
    flag=1
    for x in range(2,num):
        if num%x==0:
            flag=0
    return flag

lst=eval(input())
rst=[]
for num in lst:
    if num==2:
        rst.append(num)
    elif num>2:
        if primeNo(num)==1:
            rst.append(num)
print(rst)
lst=eval(input())
nst=lst.copy()
for x in lst:
    if x>2:
        for a in range(2,x):
            if x%a==0:
                nst.remove(x)
                break
    elif x<2:
        nst.remove(x)
print(nst)

13.交换列表中两元素位置

lst=input().split()
n,m=input().split()
n=int(n)
m=int(m)
t=lst[n]
lst[n]=lst[m]
lst[m]=t
print(lst)

第五章

程序片段题

1.名单去重

2.提取学生信息和平均成绩

第六章

编程题

1.成绩转换

def cvert(grade):
    if grade>=90:
        return "A"
    elif grade>=80:
        return "B"
    elif grade>=70:
        return "C"
    elif grade>=60:
        return "D"
    else:
        return "E"
    
grade=eval(input())
print(cvert(grade))

2.颜色混合器

def mix(color1,color2):
    st={color1,color2}
    if st=={"red","blue"}:
        return "purple"
    elif st=={"red","yellow"}:
        return "orange"
    elif st=={"blue","yellow"}:
        return "green"
    else:
        return "error"
    
color1=input()
color2=input()
print(mix(color1,color2))

利用集合的无序性

3.轮盘赌的颜色

iNum=eval(input())
if iNum==0:
    print("green")
elif iNum>=1 and iNum<=10 or iNum>=19 and iNum<=28:
    if (iNum/2)%1!=0:
        print("red")
    else:
        print("black")
elif iNum>=11 and iNum<=18 or iNum>=29 and iNum<=36:
    if (iNum/2)%1!=0:
        print("black")
    else:
        print("red")
else:
    print("error")

4.分段函数求值

x=eval(input())
if x<20:
    y=(6*x*x)+1
elif x>=20 and x<40:
    y=pow(3*x-60,0.5)
elif x>=40:
    y=100/(x+1)
print("%.2f" %(y))

5.月份对应的季节

iMonth=eval(input())
if iMonth in[3,4,5]:
    print("spring")
elif iMonth in[6,7,8]:
    print("summer")
elif iMonth in [9,10,11]:
    print("autumn")
elif iMonth in [12,1,2]:
    print("winter")
else:
    print("error")

6.组合数字

n,m=input().split(" ")
n=int(n)
m=int(m)
num=""
if m-n!=3 or m>9:
    print("illegal input")
else:
    lst=range(n,m)
    for x1 in lst:
        if x1!=0:
            for x2 in lst:
                if x2!=x1:
                    for x3 in lst:
                        if x3!=x2 and x3!=x1:
                            num+=('%d%d%d ' %(x1,x2,x3))          
print(num)
    

7.水仙花数

max=eval(input())
lst=[]
for x in range(100,1000,1):
    x=str(x)
    a=int(x[0])
    b=int(x[1])
    c=int(x[2])
    num=int(x)
    if num==a**3+b**3+c**3:
        lst.append(x)

nst=[]
for y in lst:
    if int(y)<=max:
        print(y)
        nst.append(y)
if len(nst)==0:
    print('none')

感觉题目隐含了只找三位数水仙花数

8.字符统计

dummy=input()
lst=[0,0,0,0]
for x in list(dummy):
    if x.isdigit():
        lst[2]+=1
    elif x.isalpha():
        lst[0]+=1
    elif x==" ":
        lst[1]+=1
    else:
        lst[3]+=1
print(" ".join(map(str,lst)))

9.美元人民币转换

sMoney=input()
if sMoney[0] in ['&','R']:
    if sMoney[0] == "&":
        USD=eval(sMoney[1:])/6.78
        print("$%.2f" %(USD))
    else:
        USD=eval(sMoney[3:])/6.78
        print("USD%.2f" %(USD))
elif sMoney[0] in ['$','U']:
    if sMoney[0] =="$":
        RMB=eval(sMoney[1:])*6.78
        print("&%.2f" %(RMB))
    else:
        RMB=eval(sMoney[3:])*6.78
        print("RMB%.2f" %(RMB))
else:
    print("Error")

10.回文素数

n=eval(input())
nums=[]
if n<=1 or n%1!=0:
    print("illegal input")
else:
    for x in range(1,n+1):
        t=list(str(x))
        r=t.copy()
        r.reverse()
        if r==t: 
            nums.append(x)

lst=nums.copy()
for y in lst:
    if y>2:
        for z in range(2,y):
            if y%z==0:
                nums.remove(y)
                break
    elif y<2:
        nums.remove(y)
print(" ".join(map(str,nums)))

 11.加密数据

num=input()
num=list(num)
for i in range(len(num)):
    num[i]=(eval(num[i])+5)%10
num.reverse()
print(''.join([str(x) for x in num]))

 12.统计字符串中每个字母出现的次数

lst=eval(input())
nst=[chr(i) for i in range(ord("a"),ord("z")+1)]
rst=[0]*26
for x in lst:
    x=list(str(x))
    for i in range(len(x)):
        for j in range(26):
                if x[i]==nst[j]:
                    rst[j]+=1
for y in range(26):
    if rst[y]!=0:
        print(",".join(map(str,[nst[y],rst[y]])))

13.高度反弹

h=eval(input())
N=eval(input())
high=[h]
for x in range(N-1):
   h=h*0.5
   l=h*2
   high.append(l)
all=sum(high)
print("%.2f" %(all))

 14.找学生

def cut_search(lst,num):
    left=0
    right=len(lst)-1
    while left<=right:
      mid=(left+right)//2
      if lst[mid]==num:
         return mid
      elif lst[mid]<num:
         left=mid+1
      else:
         right=mid-1
    return 1

lst=[x[0] for x in stu_list]
num=input()
rst=cut_search(lst,num)
if rst==1:
   print("None")
else:
   print(stu_list[rst][0]+stu_list[rst][1])

15.数列求和

n=eval(input())
sum=0
a=2
b=1
for i in range(n):
   sum+=a/b
   t=a
   a=a+b
   b=t

print("%.4f" %(sum))

16.累计求和

lst=[]
while True:
   sInput=input() or "#"
   if sInput=="#":
      break
   lst.append(int(sInput))
print(len(lst),sum(lst))

程序片段题

1.列表元素循环右移一位

2.计算e

3.二月的天数

4.卖西瓜 

5.多项求和(s=a+aa+aaa+...)

第七章

程序片段题

1.求0-x的阶乘

def work(a):
  def factorial(n):
        if n==0:
            return 1
        else:
            return factorial(n-1)*n
    lst=[]
    for i in range(0,a+1):
        rst=(i,factorial(i)) 
        lst.append(rst)
    dic=dict(lst)
    return dic

a  =  int(input())
ans  =  work(a)
print(ans)

 2.购物统计

3.数字分类

编程题

1.获取国家的GDP值

dic={}
sInput=input() or "ok"
while sInput!="ok":
    c,n=sInput.split()
    dic[c]=n
    sInput=input() or "ok"
country=list(dic.keys())
gpa=list(int(i) for i in dic.values())
print(sorted(country))
print(sorted(gpa))
if "India" in dic.keys():
    print("yes")
else:
    print("no")
print(sum(gpa))

2.统计字符串出现的次数(字典-2)

sInput=input() or "q"
lst=[]
while sInput!= "q":
    lst.append(sInput)
    sInput=input() or "q"
dic={}
for x in lst:
    dic[x]=lst.count(x)
max=max(dic.values())
for y in dic:
    if dic[y]==max:
        print(y,max)
    

3.计算平均成绩

n,e,p,m=input().split()
stu={}
lst=[float(e),float(p),float(m)]
lst.sort(reverse=True)
avg=sum(lst)/3
stu["name","english","python","math","avg"]=n,e,p,m,avg
print(n,"{max:.2f} {mid:.2f} {min:.2f} {avg:.2f}".format(max=lst[0],mid=lst[1],min=lst[2],avg=avg))

 4.统计字符串出现次数

sInput=input().split()
dic={}
for x in sInput:
    dic[x]=int(sInput.count(x))
max=1
for y in dic.values():
    if y>max:
        max=y
rst=[]
for z in dic.keys():
    if dic[z]==max:
        rst.append(z)
rst.sort()
for i in range(len(rst)):
    print(rst[i],max)

第八章

程序片段题

1.用递归函数求斐波那契数列的第n项

2.计算一组数的方差

3.计算两个正整数对应各位数乘积之和

def myFun(a,b):
    num=[]
    if len(a)==len(b):
        for i in range(len(a)):
            num.append(int(a[i])*int(b[i]))
    elif len(a)>len(b):
        lst=list(b)[::-1]
        for x in range(len(a)-len(b)):
            lst.append(0)
        lst=lst[::-1]
        for i in range(len(a)):
            num.append(int(a[i])*int(lst[i]))
    else:
        rst=list(a)[::-1]
        for y in range(len(b)-len(a)):
            rst.append(0)
        rst=rst[::-1]
        for i in range(len(b)):
            num.append(int(rst[i])*int(b[i]))
    return sum(map(int,num))

num=input().split()
a=num[0]
b=num[1]
if a.isdigit() and b.isdigit():  #判断a,b是否都是数字
    print(myFun(a,b))  #调用自定义函数
else:
    print("error")

4. 

输出特定矩阵1

join()作用于list,返回类型为字符串

编程题

成绩与名字组合后升序输出

key=lambda x:x[-1]  —— 按序列最后一个元素大小为依据进行排序

第九章

何为面向对象?

只是自己在网上听网课做的笔记,这一章比较难理解,这个思维导图希望能帮助你们理解一点儿

程序片段题

BMI

stock

book

第十章

程序片段题

身份证信息提取和掩码输出

字符串位置查询

编程题

取出第一个没有重复的字符

解密码

身份证验证

密码强度

在输入dummy时,不能直接复制粘贴题目中的,因为 {} 和 \ 在字符串中都有特殊含义(所以把 { 和 } 分开,输入两个 \\ 以表示字符 \ )

变位词

这个题目默认one和two完全相同时也算变位词

第十一章

程序片段题

输入学生信息

编程题

大小写转换

注意:以“w”即write形式打开文件会清空文件原有内容

课后习题11-2:统计文件中行,单词,字符数

学生成绩排序

课后习题11-5:统计文件中目标字符串个数

课后习题11-6:删除文件中目标字符串-

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值