序列练习
alist=list(map(int,input().split()))
blist=list(map(int,input().split()))
print(list(sorted(set(alist+blist))))
'''
alist=list(map(int,input().split()))
blist=list(map(int,input().split()))
print(sorted(set(alist+blist)))
'''
Point:
sort(可迭代对象)返回list
https://www.cnblogs.com/mswei/p/9283297.html
set(iterable) 返回set类型
alist=list(map(int,input().split()))
len=len(alist)
a1lsit=alist[0:len//2]#一定要// 整除否则报错 或者int()
a2list=alist[len//2:len] #alist[len//2:]
adict={'1': a1lsit, '2':a2list}
print(adict)
alist=list(map(int,input().split()))
alist.sort(key=abs)
print(alist)
OR
alist=list(map(int,input().split()))
print(sorted(alist, key=abs))
流程控制
思路:看成字符串,以便获得位数
a=int(input())
for i in range(153,a+1):
sum=0
istr=str(i)
ilen=len(istr)
for j in istr:
sum+=int(j)**ilen
if sum==i:
print(i)
n=int(input())
sum=0
for i in range(1,n+1) :
if i% 7 ==0 :
continue
flag=True
istr=str(i)
for j in istr:
if j =='7':
flag=False
break
if flag :
sum+=i**2
print(sum)
n=int(input())
for i in range(6,n+1) :
sum=1
for j in range(2,i):
if (i % j) == 0 :
sum=sum+j
if sum>i:
break
if sum==i :
print(i)
n=input()
flag=True
nlen=len(n)
for i in range(0,nlen):
if n[i]!=n[nlen-1-i]:
flag=False
break
if flag:
print("yes")
else:
print("no")
#反转技巧
n=input()
n1=n[::-1]
if n1==n :
print("yes")
else:
print("no")
alist=list(map(int,input().split()))
alen=len(alist)
for i in range(0,alen):
if alist[i] % 2 ==0:
alist[i]//=2
else:
alist[i]**=2
print(sorted(alist))
n=int (input())
alist=[2]
for i in range(3,n):
flag=True
for k in range(2,i//2+1):
if i % k ==0:
flag=False
break
if flag :
alist.append(i)
print(alist)
n=int (input())
k=1
for i in range(1,n):
k=(k+1)*2
print(k)
函数
n=int(input(""))
def fbnq(n):
a,b,c=1,1,0
if n==1 or n==2:
return 1
for i in range(n-2):
c=a+b
a,b=b,c
return c
print(fbnq(n))
https://blog.csdn.net/byakki/article/details/86607826
def lcm(num1,num2):
# 可以先求公约数
a,b=max(num1,num2),min(num1,num2)
c=1
while c!=0:
c=a % b
a,b=b,c
t=num1*num2//a
return t
num1=int(input(""))
num2=int(input(""))
print(lcm(num1,num2))
#法二
def lcm(num1,num2):
# 可以先求公约数
for i in range(max(num1,num2),num1*num2+1,2) :
if (i % num2 ==0) and (i% num1==0):
return i
num1=int(input(""))
num2=int(input(""))
print(lcm(num1,num2))
def bubbleSort(alist):
alen=len(alist)
flag=False
for i in range(alen-1):
for j in range(alen-1,i,-1):
if alist[j]<alist[j-1]:
t=alist[j]
alist[j]=alist[j-1]
alist[j-1]=t
flag=True
if flag==False:
return
return alist
alist=list(map(int,input().split()))
print(bubbleSort(alist))
模块
import datetime
strtime=input("")
listtime=strtime.split("/")
d1=datetime.datetime.strptime(listtime[0]+'/1/1',"%Y/%m/%d")
d2=datetime.datetime.strptime(strtime,'%Y/%m/%d')
print((d2-d1).days+1)
from math import *
x=int(input())
y=sin(15/180*pi)+(e**x-5*x)/sqrt(x*x+1)-log(3*x)
print('%.10f'%y)
def is_perfectSquare(n):
if int(n**0.5)**2==n:
return True
else:
return False
n=1
while True:
if is_perfectSquare(n+150) and is_perfectSquare(n+150+136):
print(n)
break
else:
n+=1
n=int(input(""))
t=2*n-1
for k in range(1,t+1):
if k!=1:
print("")
for i in range(1,t+1):
if k>=1 and k<n and (i==k or i==t-k+1):
print("X",end='')
elif k==n and i==k:
print("X",end='')
elif k>n and k<=t and (i==2*n-k or i==t-(2*n-k)+1):
print("X",end='')
else:
print("+",end='')
n=int(input(""))
m=int(input(""))
alist=list(range(n))
newlist=[]
for i in range(n):
for j in range(m-1):
alist.append(alist.pop(0))
newlist.append(alist.pop(0))
print(newlist)
类
学生成绩排序(类与对象练习)(10分)
题目内容:
设计一个学生类(Student),其中的数据成员有:字符串类型sname表示录入的学生姓名,整型值mscore代表学生的数学成绩,整型值cscore代表学生的语文成绩,整型值escore代表学生的英语成绩。
然后要求根据录入的学生成绩(各不相同),输出总分最高的学生姓名和各科目成绩。
输入格式:
输入分为4个部分:
先输入学生姓名,以空格分隔;然后输入学生的数学成绩(各不相同的正整数),也以空格分隔;再输入学生的语文数学成绩(各不相同的正整数),也以空格分隔。最后输入学生的英语数学成绩(各不相同的正整数),也以空格分隔。学生姓名个数和成绩个数一定会相同。
输出格式:
共一行,为总分最高的学生姓名和各科目成绩,以空格分隔。
输入样例:
jack tom
95 84
90 75
85 90
输出样例:
jack 95 90 85
class Student:
def __init__(self,sname,mscore,cscore,escore):
self.sname,self.mscore,self.cscore,self.escore=sname,mscore,cscore,escore
self.total=+mscore+cscore+escore
def __lt__(self,other):
return self.total>other.total
def __str__(self):
return "%s %d %d %d"%(self.sname,self.mscore,self.cscore,self.escore)
sname=input().split()
mscore=list(map(int,input().split()))
cscore=list(map(int,input().split()))
escore=list(map(int,input().split()))
slist=[]
for i in range(len(sname)):
slist.append(Student(sname[i],mscore[i],cscore[i],escore[i]))
slist.sort()
print(slist[0])
alist=list(map(int,input().split()))
n=int(input())
olist=[]
for k1 in range(len(alist)):
v1=alist[k1]
v2=n-v1
if v2 >0 and v2 in alist:
k2=alist.index(v2)
if k2==k1:
continue
olist.append(k1)
olist.append(k2)
break
print(olist)
防止append同一个数用 用 set()
x,y,n=int(input()),int(input()),int(input())
def select(x,y,n):
r=set()
for i in range(n):
for j in range(n):
l=x**i+y**j
if l<=n:
r.add(l)
return sorted(r)
print(select(x,y,n))
#未用集合、未估测i,j范围(指数函数快于y=x 1^x 除外)
x=int(input())
y=int(input())
n=int(input())
olist=[]
i=0
j=0
pt=0
while True:
flag=False
while True:
t=x**i+y**j
if t<=n and pt!=t:
pt=t
if t not in olist:
olist.append(t)
flag=True
else :
break
i+=1
if flag:
i,j=0,j+1
else:
break
olist.sort()
print(olist)
# 注意 len<=2 也要print(0) 下面代码正好满足
alist=list(map(int,input().split()))
alist.sort(reverse=True)
for i in range(len(alist)-2):
if (alist[i+2]+alist[i+1]) > alist[i]:
print(alist[i+2]+alist[i+1]+alist[i])
break
else:
print(0)
一些字符串处理、循环
list1=list(map(int,input().split()))
list2=list(map(int,input().split()))
list3=list(map(lambda x,y: (x-y)**2,list1,list2))
sum=0
for i in range(len(list3)):
sum+=list3[i]
print(sum)
str1=input().lower()
s=''
for i in str1:
if i.isalpha() or i.isdigit():
s+=i
if s[::-1]==s :
print("True")
else:
print("False")
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200429163353821.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hnZWVhY2tlcg==,size_16,color_FFFFFF,t_70)
```py
alist=list(map(int,input().split()))
alist.sort()
aset=set()
alen=len(alist)
for i in range(alen-2):
for j in range(i+1,alen-1):
for k in range(j+1,alen):
if alist[i]+alist[j]+alist[k]==0:
aset.add(( alist[i],alist[j],alist[k]))
alist=list(map(int,input().split()))
blist=[]
mul=1
flag=False
for a in alist:
if a==0 and flag==False:# 防止多个零情况 eg 0,1,0,2
flag=True
continue
mul*=a
for i in range(len(alist)):
if flag :
if alist[i]==0 :
blist.append(mul)
else :
blist.append(0)
else:
b = mul//alist[i]
blist.append(b)
print(blist)
s = input() #暗
alp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
n = alp.index(s[-1])-alp.index('E')
for t in s:
print(alp[(alp.index(t)-n) %26],end="")
总结:余数一定为正数
映射