初学者,大一之前从未接触过任何与编程相关的,所以下边的代码仅仅是在希冀上显示运行正确了,有冗余和不妥之处请见谅。
第二到三章
程序片段题
小费,税和消费总额
编程题
平面上两点距离坐标
第四章
程序片段题
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形式打开文件会清空文件原有内容