第1章-1 从键盘输入两个数,求它们的和并输出
a=int(input())
b=int(input())
print(a+b)
第1章-2 从键盘输入三个数到a,b,c中,按公式值输出
a,b,c=map(int,input().split())
print(b*b-4*a*c)
第1章-3 输出“Python语言简单易学”
s="Python语言简单易学"
print(s.encode("utf-8"))
第2章-1 计算 11+12+13+…+m
m=int(input())
print('sum =',sum([i for i in range(11,m+1)]))
第2章-2 计算分段函数[1]
x=float(input())
if x==0.0:
print('f(0.0) = 0.0')
else:
print('f({0:.1f}) = {1:.1f}'.format(x,1/x))
第2章-3 阶梯电价
x=float(input())
if x<0:
print('Invalid Value!')
elif x>=0 and x<=50:
print('cost = {0:.2f}'.format(0.53*x))
else:
print('cost = {0:.2f}'.format(0.53*50+0.58*(x-50)))
第2章-4 特殊a串数列求和
a,b=input().split()
b=int(b)
s=[int(j) for j in [a*i for i in range(1,b+1)]]
print('s =',sum(s))
第2章-5 求奇数分之一序列前N项和
n=int(input())
sum=sum([1/i for i in range(1,2*n,2)])
print('sum = {0:.6f}'.format(sum))
第2章-6 求交错序列前N项和
n=int(input())
s=[i/(2*i-1) if i%2==1 else -i/(2*i-1) for i in range(1,n+1)]
print('{0:.3f}'.format(sum(s)))
第2章-7 产生每位数字相同的n位数
'''本题输入格式不规范,需要处理输入'''
a,b=input().split(',')
a=a.strip()
b=b.strip()
b=int(b)
print(int(a*b))
第2章-8 转换函数使用
a,b=input().split(',')
b=int(b)
print(int(a,b))
第2章-9 比较大小
print(*sorted(map(int,input().split())),sep='->')
第2章-10 输出华氏-摄氏温度转换表
lower,upper=map(int,input().split())
if lower>upper:
print('Invalid.')
else:
print('fahr celsius')
for i in range(lower,upper+1,2):
print('{0:d}{1:>6.1f}'.format(i,5*(i-32)/9))
第2章-11 求平方与倒数序列的部分和
m,n=map(int,input().split())
sum=sum([i*i+1/i for i in range(m,n+1)])
print('sum = {0:.6f}'.format(sum))
第2章-12 输出三角形面积和周长
from math import sqrt
a,b,c=map(int,input().split())
if a+b<=c or a+c<=b or b+c<=a:
print('These sides do not correspond to a valid triangle')
else:
s=(a+b+c)/2
area=sqrt(s*(s-a)*(s-b)*(s-c))
perimeter=a+b+c
print('area = {0:.2f}; perimeter = {1:.2f}'.format(area,perimeter))
第2章-13 分段计算居民水费
x=int(input())
y=4*x/3 if x<=15 else 2.5*x-17.5
print('{0:.2f}'.format(y))
第2章-14 求整数段和
a,b=map(int,input().split())
sum=0
for i in range(a,b+1):
sum+=i
print('{0:>5}'.format(i),end='')
if (i-a+1)%5==0:
print()
if (i-a+1)%5==0:
print('Sum =',sum)
else:
print('\nSum =',sum)
第3章-1 大于身高的平均值
l=list(map(int,input().split()))
average=sum(l)/len(l)
for i in l:
if i>average:
print(i,end=' ')
第3章-2 查验身份证
l=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] #权重表
zm=['1','0','X','9','8','7','6','5','4','3','2'] #模值验证码表
n=int(input())
cnt=0
for i in range(n):
id=input()
sum=0
for i in range(17):
if id[i].isdigit():
sum+=l[i]*int(id[i])
else:
print(id)
break
if i==16: #说明身份证号前17位都是数字
z=sum%11
if zm[z]!=id[-1]:
print(id)
else:
cnt+=1
if cnt==n:
print('All passed')
第3章-3 输出字母在字符串中位置索引
s=input()
char1,char2=input().split()
for i in range(len(s)-1,-1,-1):
if s[i]==char1 or s[i]==char2:
print(i,s[i])
第3章-4 查找指定字符
char=input()
s=input()
for i in range(len(s)-1,-1,-1):
if s[i]==char:
print('index =',i)
break
else:
print('Not Found')
第3章-5 字符转换
s=input()
print(int(''.join([i for i in s if i.isdigit()])))
第3章-6 求整数序列中出现次数最多的数
l=list(map(int,input().split()))
n=l.pop(0)
cnt={}
for i in l:
cnt[i]=cnt.get(i,0)+1
for key,value in cnt.items():
if value==max(cnt.values()):
print(key,value)
第3章-7 求最大值及其下标
n=int(input())
l=list(map(int,input().split()))
print(max(l),l.index(max(l)))
第3章-8 字符串逆序
s=input()
print(s[::-1])
第3章-9 字符串转换成十进制整数
s=input()
sum=0
for i in s:
if i.isdigit():
sum=sum*16+ord(i)-48
if 'a'<=i<='f':
sum=sum*16+ord(i)-87
if 'A'<=i<='F':
sum=sum*16+ord(i)-55
for j in range(len(s)):
if s[j].isdigit() or 'a'<=s[j]<='f' or 'A'<=s[j]<='F':
break
if '-' in s and j>s.find('-'):
sum=-sum
print(sum)
第3章-10 统计大写辅音字母
l=['A','E','I','O','U']
s=input()
cnt=0
for i in s:
if i not in l and i.isupper():
cnt+=1
print(cnt)
第3章-11 字符串排序
print('After sorted:')
print(*sorted(list(input().split())),sep='\n')
第3章-12 求整数的位数及各位数字之和
num=input()
s=[int(i) for i in num]
print(len(num),sum(s))
第3章-13 字符串替换
s=input()
l=''
for i in s:
if i.isupper():
i=chr(90-(ord(i)-65)) #'Z'减去字母到'A'的距离
l+=i
print(l)
第3章-14 字符串字母大小写转换
s=input()
s=s[:-1]
for i in s:
if i.isupper():
print(i.lower(),sep='',end='')
elif i.islower():
print(i.upper(),sep='',end='')
else:
print(i,sep='',end='')
第3章-15 统计一行文本的单词个数
s=list(input().split())
print(len(s))
第3章-16 删除重复字符
l=input()
for i in sorted(list(set([i for i in l]))):
print(i,sep='',end='')
第3章-17 删除字符
s=input().strip()
c=input().strip()
result=[i for i in s if i!=c.lower() and i!=c.upper()]
print('result:',''.join(result))
第3章-18 输出10个不重复的英文字母
s=input()
l=''
for i in s:
if i.isalpha() and i.lower() not in l and i.upper() not in l:
l+=i
if len(l)==10:
break
if len(l)<10:
print('not found')
else:
print(l)
第3章-19 找最长的字符串
n=int(input())
l=[]
max=0
maxi=0
for i in range(n):
s=input()
if len(s)>max:
max=len(s)
maxi=i
l.append(s)
print('The longest is:',l[maxi])
第3章-20 逆序的三位数
x=int(input())
while x%10==0:
x=x//10
print(str(x)[::-1])
第3章-21 判断回文字符串
s=input()
t=s[::-1]
print(s)
if s==t:
print('Yes')
else:
print('No')
第3章-22 输出大写英文字母
s=input()
l=''
for i in s:
if i.isupper() and i not in l:
l+=i
if len(l)==0:
print('Not Found')
else:
print(l)
第4章-1 生成3的乘方表
from math import pow
n=int(input())
for i in range(n+1):
print('pow(3,{0}) = {1}'.format(i,int(pow(3,i))))
第4章-2 统计素数并求和
def isprime(n):
for i in range(2,n):
if n%i==0:
return False
else:
return True
m,n=map(int,input().split())
prime=[]
for i in range(m,n+1):
if isprime(i) and i>1:
prime.append(i)
print(len(prime),sum(prime))
第4章-3 猴子吃桃问题
n=int(input())
sum=1
for i in range(n-1):
sum=(sum+1)*2
print(sum)
第4章-4 验证“哥德巴赫猜想”
from math import sqrt
def isprime(n):
for i in range(2,int(sqrt(n)+1)):
if n%i==0:
return False
else:
return True
x=int(input())
for i in range(2,x):
if isprime(i) and isprime(x-i):
break
print('{0} = {1} + {2}'.format(x,i,x-i))
第4章-5 求e的近似值
def fac(n):
sum=1
for i in range(2,n+1):
sum*=i
return sum
x=int(input())
s=[1/fac(i) for i in range(1,x+1)]
print('{0:.8f}'.format(sum(s)+1))
第4章-6 输出前 n 个Fibonacci数
fibs=[1,1]
n=int(input())
for i in range(n-2):
fibs.append(fibs[-1]+fibs[-2])
if n<1:
print('Invalid.')
else:
for i in range(n):
print('{0:11d}'.format(fibs[i]),end='')
if (i+1)%5==0:
print()
第4章-7 统计学生平均成绩与及格人数
n=int(input())
if n==0:
print('average = 0.0')
print('count = 0')
else:
l=list(map(int,input().split()))
s=[i for i in l if i>=60]
print('average = {0:.1f}'.format(sum(l)/n))
print('count =',len(s))
第4章-8 求分数序列前N项和
n=int(input())
a=2
b=1
sum=a/b
for i in range(n-1):
temp=a
a=a+b
b=temp
sum+=a/b
print('{:.2f}'.format(sum))
第4章-9 查询水果价格
print('[1] apple')
print('[2] pear')
print('[3] orange')
print('[4] grape')
print('[0] exit')
l=list(map(int,input().split()))
price=[3.00,2.50,4.10,10.20]
cnt=0
for i in l:
cnt+=1
if cnt>5 or i==0:
break
if i<0 or i>4:
print('price = 0.00')
else:
print('price = {:.2f}'.format(price[i-1]))
第4章-10 最大公约数和最小公倍数
'''求,就硬求
m,n=map(int,input().split())
max=max([i for i in range(1,m) if m%i==0 and n%i==0])
min=0
for i in range(m,m*n+1):
if i%m==0 and i%n==0:
min=i
break
print(max,min)
'''
#老祖宗的辗转相除法
def gcd(m,n):
if m%n == 0:
return n
else :
return gcd(n,m%n)
m,n=map(int,input().split())
print('{} {}'.format(gcd(m,n),m*n//gcd(m,n)))
第4章-11 判断素数
from math import sqrt
def isprime(n):
if n<=1:
return False
for i in range(2,int(sqrt(n)+1)):
if n%i==0:
return False
else:
return True
n=int(input())
for i in range(n):
x=int(input())
if isprime(x):
print('Yes')
else:
print('No')
第4章-12 求满足条件的斐波那契数
n=int(input())
fibs=[1,1]
while fibs[-1]<=n:
fibs.append(fibs[-1]+fibs[-2])
print(fibs[-1])
第4章-13 求误差小于输入值的e的近似值
def fac(n):
sum=1
for i in range(2,n+1):
sum*=i
return sum
error=float(input())
sum1=1
sum2=0
i=1
while True:
sum1=sum1+1/fac(i)
i+=1
sum2=sum1+1/fac(i)
if sum2-sum1<error:
break
print('{:.6f}'.format(sum2))
第4章-14 统计字符
'''
本题难点在于不知道10个字符分几行输入
所以每接收一行都要要统计回车数
'''
enter=0;letter=0;blank=0;digit=0;other=0
c=''
while True:
s=input()
enter+=1
c+=s
if len(c)+enter>10:
enter-=1
break
for i in c:
if i.isalpha():
letter+=1
elif i==' ':
blank+=1
elif i.isdigit():
digit+=1
else:
other+=1
print('letter = {}, blank = {}, digit = {}, other = {}'.format(letter,blank+enter,digit,other))
第4章-15 换硬币
x=int(input())
count=0
fen5=0;fen2=0;fen1=0;total=0
for a in range(x//5,0,-1):
for b in range(x//2,0,-1):
for c in range(x,0,-1):
if 5*a+2*b+c*1==x:
print('fen5:{}, fen2:{}, fen1:{}, total:{}'.format(a,b,c,a+b+c))
count+=1
print('count =',count)
第4章-16 jmu-python-判断是否构成三角形
a,b,c=map(int,input().split())
if a+b<=c or a+c<=b or b+c<=a:
print('no')
else:
print('yes')
第4章-17 水仙花数
from math import pow
n=int(input())
start=int(pow(10,n-1))
stop=int(pow(10,n))
for i in range(start,stop):
l=str(i)
s=[int(pow(int(j),n)) for j in l]
if i==sum(s):
print(i)
第4章-18 猴子选大王
'''我的辣鸡代码如下
n=int(input())
l=[i for i in range(1,n+1)]
cnt0=0 #记录报3的人数
cnt=0 #记录报数报到几了
while True:
for i in range(n):
if l[i]!=0: #只有不为0的人有资格报数
cnt+=1
if cnt==3:
l[i]=0 #报3的人将其编号置零
cnt=0 #并且重新开始报数
cnt0+=1 #报3的人数+1
for i in range(n):
if l[i]!=0:
l[i]+=cnt #报完一遍数后,接着上一个报数
if cnt0==n-1: #当报3的人数为n-1时,剩下的为王
break
for i in range(n):
if l[i]!=0: #最后不为0的人只有一个,通过遍历找出
print(i+1)
'''
'''大佬的
https://tuenity.blog.csdn.net/article/details/102609489
这个解答为下面的评论区的回复,作者为@zjuvegetable
侵删
'''
#约瑟夫环问题
n=int(input())
if n == 1:
print(1)
else:
monkey=[i for i in range(1,n+1)]
while len(monkey) >= 3:
monkey.pop(2)
monkey.append(monkey.pop(0))
monkey.append(monkey.pop(0))
print(monkey[1])
第4章-19 矩阵运算
n=int(input())
sum=0
l=[]
for i in range(n):
num=list(input().split())
l.append(num)
for i in range(n):
for j in range(n):
if i+j!=n-1 and i!=n-1 and j!=n-1:
sum+=int(l[i][j])
print(sum)
第4章-20 求矩阵各行元素之和
m,n=map(int,input().split())
for i in range(m):
print(sum(list(map(int,input().split()))))
第4章-21 判断上三角矩阵
x=int(input())
for i in range(x):
y=int(input())
l=[]
flag=True
for j in range(y):
s=list(map(int,input().split()))
l.append(s)
for m in range(1,y):
for n in range(m):
if l[m][n]!=0:
flag=False
if flag:
print('YES')
else:
print('NO')
第4章-22 找鞍点
n=int(input())
l=[]
for i in range(n):
s=list(map(int,input().split()))
l.append(s)
x=[]
y=[]
for i in range(n):
xmax=max([l[i][j] for j in range(n)]) #行最大值
ymin=min([l[j][i] for j in range(n)]) #列最小值
x+=[(i,j) for j in range(n) if l[i][j]==xmax]
y+=[(j,i) for j in range(n) if l[j][i]==ymin]
x=list(set(x)&set(y))
if len(x)==0:
print('NONE')
else:
print(x[0][0],x[0][1])
第4章-23 求矩阵的局部极大值
m,n=map(int,input().split())
l=[]
for i in range(m):
s=list(map(int,input().split()))
l.append(s)
flag=False
for i in range(1,m-1):
for j in range(1,n-1):
if l[i][j]>l[i-1][j] and l[i][j]>l[i+1][j]\
and l[i][j]>l[i][j-1] and l[i][j]>l[i][j+1]:
flag=True
print(l[i][j],i+1,j+1)
if flag==False and i==m-2:
print('None',m,n)
第4章-24 打印九九口诀表
n=int(input())
for i in range(1,n+1):
for j in range(1,i+1):
print('{0}*{1}={2:<4d}'.format(j,i,i*j),end='')
if j==i:
print()
第4章-25 输出三角形字符阵列
n=int(input())
c='A'
for i in range(n,0,-1):
for j in range(i):
print('{} '.format(c),end='')
c=chr(ord(c)+1)
if j==i-1:
print()
第4章-26 求1!+3!+5!+……+n!
n=int(input())
if n==1:
print('n=1,s=1')
else:
l=[]
for i in range(1,n+1,2):
s=1
for j in range(1,i+1):
s*=j
l.append(s)
print('n={},s={}'.format(n,sum(l)))
第4章-27 二维数组中每行最大值和每行和
l=list(map(int,input().split()))
for i in range(9):
if i%3==0:
s=[]
s.append(l[i])
if i%3==2:
for j in range(3):
print('{:>4d}'.format(s[j]),end='')
print('{:>4d}{:>4d}'.format(max(s),sum(s)))
第4章-28 矩阵转置
l=list(map(int,input().split()))
for i in range(3):
for j in range(9):
if j%3==i:
print('{:>4d}'.format(l[j]),end='')
print()
第4章-29 找出不是两个数组共有的元素
s=list(map(int,input().split()))
t=list(map(int,input().split()))
lens=s.pop(0)
lent=t.pop(0)
l=[]
for i in s:
if i not in t and i not in l:
l.append(i)
for i in t:
if i not in s and i not in l:
l.append(i)
print(*l,sep=' ')
第4章-30 找完数
from math import sqrt
m,n=map(int,input().split())
flag=False
for i in range(m,n+1):
l=[1]
for j in range(2,int(sqrt(i))+1):
if i%j==0:
l.append(j)
l.append(i//j)
l=sorted(l)
if i==sum(l):
flag=True
print('{} = '.format(i),end='')
print(*l,sep=' + ')
if flag==False:
print('None')
第5章-1 输出星期名缩写
d={1:'Mon',2:'Tue',3:'Wed',4:'Thu',5:'Fri',6:'Sat',7:'Sun'}
n=int(input())
print(d[n])
第5章-2 图的字典表示
n=int(input())
counte=0 #边数
sumd=0 #度的和
for i in range(n):
d=eval(input())
for j in d.keys():
l=d[j]
for key,value in l.items():
counte+=1
sumd+=value
print(n,counte,sumd)
第5章-3 四则运算(用字典实现)
m=int(input())
operator=input()
n=int(input())
d={'+':'m+n','-':'m-n','*':'m*n','/':'m/n'}
try:
print('{:.2f}'.format(eval(d[operator])))
except ZeroDivisionError:
print('divided by zero')
第5章-4 分析活动投票情况
l=list(map(int,input().split(',')))
s=[i for i in range(6,11) if i not in l]
print(*s,sep=' ')
第5章-5 统计字符出现次数
s=input()
c=input()
print(s.count(c))
第5章-6 统计工龄
n=int(input())
l=list(map(int,input().split()))
d={}
for i in l:
d[i]=d.get(i,0)+1
for key in sorted(d.keys()):
print('{0}:{1}'.format(key,d[key]))
第5章-7 列表去重
l=eval(input())
s=[]
for i in l:
if i not in s:
s.append(i)
print(*s,sep=' ')
第5章-8 能被3,5和7整除的数的个数(用集合实现)
m,n=map(int,input().split())
s3=set();s5=set();s7=set()
for i in range(m,n+1):
if i%3==0:
s3.add(i)
if i%5==0:
s5.add(i)
if i%7==0:
s7.add(i)
s=s3&s5&s7
print(len(s))
第5章-9 求矩阵鞍点的个数
n=int(input())
l=[]
for i in range(n):
s=list(map(int,input().split()))
l.append(s)
x=[]
y=[]
s=set()
for i in range(n):
xmax=max([l[i][j] for j in range(n)]) #行最大值
ymin=min([l[j][i] for j in range(n)]) #列最小值
x+=[(i,j) for j in range(n) if l[i][j]==xmax]
y+=[(j,i) for j in range(n) if l[j][i]==ymin]
s|=set(x)&set(y)
print(len(s))
第5章-10 两数之和
l=list(map(int,input().split(',')))
num=int(input())
d={}
for i in l:
d[i]=num-i
for key,value in d.items():
if key in l and value in l:
print(l.index(key),l.index(value))
break
else:
print('no answer')
第5章-11 字典合并
d1=eval(input())
d2=eval(input())
d3={}
for i in d1:
d3[i]=d1[i]+d2.get(i,0)
for i in d2:
if i not in d3.keys():
d3[i]=d2[i]
d3=dict(sorted(d3.items(),key=lambda x:x[0] if type(x[0])==int else ord(x[0])))
cnt=0
print('{',end='')
for i in d3:
if type(i)==str:
print('"{}":{}'.format(i,d3[i]),end='')
else:
print('{}:{}'.format(i,d3[i]),end='')
cnt+=1
if cnt!=len(d3):
print(',',end='')
print('}',end='')
第6章-1 输入列表,求列表元素和(eval输入应用)
print(sum(eval(input())))
第6章-2 一帮一
n=int(input())
stu=[]
for i in range(n):
no,name=input().split()
stu.append((no,name))
l=[]
for i in stu[:n//2]:
for j in stu[n//2:][::-1]:
if i[0]!=j[0] and i not in l and j not in l:
l.append(i)
l.append(j)
for i in range(n):
print(l[i][1],end='')
if i%2!=0:
print()
else:
print(' ',end='')
第6章-3 列表或元组的数字元素求和
def f(l):
s=0
if type(l)==type(1):
s+=l
if type(l)==type([]) or type(l)==type((1,)):
for i in l:
s+=f(i)
return s
l=eval(input())
print(f(l))
第6章-4 列表数字元素加权和(1)
def f(l,deep):
s=0
if isinstance(l,int):
s+=l*deep
if isinstance(l,list):
deep+=1
for i in l:
s+=f(i,deep)
return s
l=eval(input())
print(f(l,0))
第6章-5 列表元素个数的加权和(1)
def f(l,deep):
s=0
if isinstance(l,int):
s+=1*deep
if isinstance(l,list):
deep+=1
for i in l:
s+=f(i,deep)
return s
l=eval(input())
print(f(l,0))
第6章-6 求指定层的元素个数
def f(l,deep,num):
s=0
if isinstance(l,int) and deep==num:
s+=1
if isinstance(l,list):
deep+=1
for i in l:
s+=f(i,deep,num)
return s
l=eval(input())
num=int(input())
print(f(l,0,num))
第6章-7 找出总分最高的学生
n=int(input())
stu=[]
for i in range(n):
stu.append(list(input().split()))
stu=sorted(stu,key=lambda x:int(x[2])+int(x[3])+int(x[4]),reverse=True)
print(stu[0][1],stu[0][0],int(stu[0][2])+int(stu[0][3])+int(stu[0][4]))
第6章-8 *6-7 输出全排列
from math import pow
n=int(input())
start=int(pow(10,n-1))
stop=(n+1)*int(pow(10,n-1))
l=set([str(i) for i in range(1,n+1)]) #数字库
for i in range(start,stop):
i=str(i)
s=set()
for j in i:
s.add(j)
if l==s:
print(int(i))
第7章-1 词频统计
import re
import collections
import sys
words_str = ''.join([line for line in sys.stdin]) #系统读取输入,聚合成一个字符串
words_str = words_str.lower().split('#')[0] #所有字母变小写后,按“#”分割,取“#”前的字符串
words_list = re.findall(r'\w+',words_str) #将所有的单词提取出来
top15_words_list = [i[0:15] if len(i)>15 else i for i in words_list] #取所有单词的前15位
words_counter_dict = collections.Counter(top15_words_list) #统计各个单词的个数
words_rank_list = sorted(words_counter_dict.items(),key=lambda x:(-x[1],x[0])) #按单词个数降序排序,如若一样,则按单词升序排序
print(len(words_rank_list))
for i in words_rank_list[0:int(len(words_rank_list)*0.1)]: #输出排序列表的前10%
print("{}:{}".format(i[1],i[0]))