初学者,大一之前从未接触过任何与编程相关的,所以下边的代码仅仅是在希冀上显示运行正确了,有冗余和不妥之处请见谅,也可以私信或评论区提出来,一起进步~
第二到三章
程序片段题
小费,税和消费总额
编程题
平面上两点距离坐标
第四章
程序片段题
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-1print(lst)
lst=eval(input())nst=lst.copy()for x in lst: a=nst.count(x) while a >1: nst.remove(x) a=a-1print(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 flaglst=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]=tprint(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)+1elif 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]+=1print(" ".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)%10num.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]*26for 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]+=1for 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 1lst=[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=0a=2b=1for i in range(n): sum+=a/b t=a a=a+b b=tprint("%.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 dica = 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)/3stu["name","english","python","math","avg"]=n,e,p,m,avgprint(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=1for y in dic.values(): if y>max: max=yrst=[]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:删除文件中目标字符串-