基础语法补充:
##如何处理列表与数据可视化问题
def get_line():
return map(int,input().split())##映射成新的可迭代对象
d,e,f=get_line()
print(d,e,f)
n,m=map(int,input().split())
print(f'n:{n},m:{m}\n')
x,y=1.555,1.5555
f'{x:.2f}{y:.3f}'##注意当这里是{x:.2f}{x:.2f}时,出现的结果并不相同
##四舍五入尽量不要用round函数,会吞零
l=list(map(int,input().split()))
print(l)
l=[int(x) for x in input().split()]##与上式等效
print(l)
N=[list(map(int,input().split())) for _ in range(3)]##接收3*3矩阵
print(N)
t=(2,3,4,5,6)
a=[i * 10 for i in t if i%2]
print(a)
l=[]
for i in t:
if i%2:
l.append(i)
print(l)
##简单面向对象
class Dog:
def __init__(self,name):
self.name=name
def bark(self):
print(f'{self.name} is barking')
dog=Dog('loser')
dog.bark()
最大距离writeup:
无脑解即可,需要注意的是python中已经备好了max(判大小函数)以及abs(取绝对值)两个function
n=int(input())
a=[int(x) for x in input().split()]
f=lambda i,j:abs(i-j)+abs(a[i]-a[j])
M=0
for i in range(n-1):
for j in range(i+1,n):
M=max(M,f(i,j))
print(M)
四平方和writeup:
break跳出一层循环,return跳出所有循环
##python中如何开根号
##pow()幂函数,或者最快的方法:
def sqrt(x):
return int(x**0.5)
def is_square(n):
root=sqrt(n)
return root*root==n##通过这种方式来判断n是否为完全平方数,否则会出现float失精度问题
def upper(k,n):
return sqrt(n/k)##每次遍历只需要在sqrt范围之内就可以,如果在sqrt范围内的均不符合条件,那在此后也不会符合
def loop(n):
for a in range(upper(4,n)):
i=a*a
for b in range(a,upper(3,n)):
j=b*b+i
for c in range(b,upper(2,n)):
k=c*c+j
d_square=n-k
if d_square>=c*c:
if is_square(d_square):##看一看最后剩余的数能否是完全平方数
d=sqrt(d_square)
return (a,b,c,d)
if __name__=='__main__':##必须要加,其作用相当于一个主函数
n=int(input())
print(*loop(n))##把元组展开来,变成一个个数字,不用再次枚举输出