当前位置: 代码迷 >> 综合 >> 学会python应对面试的第一天笔记
  详细解决方案

学会python应对面试的第一天笔记

热度:67   发布时间:2023-10-19 18:25:32.0

第一题:

输入两行数字,第一行第一个数字表示值A1,第一行第二个数字表示第二行要输入n个数字,然后第二行输入n个数字和第一行的A1值进行差的绝对值排序这n个数字,从小到排序,如果绝对值相等情况也是按小到大排序。请写出代码

例如输入:

50  10
49 50 52 47 40 43 53 55 42 44

得到的输出结果为:

50 49 52 47 53 55 44 43 42 40

 该题代码如下:

a,b = map(int,input().split())
print(a,b)
c=(input().split())
print(c)
for j in range(0,int(b)-1):for i in range(0,int(b)-1-j):if abs(int(c[i])-int(a)) > abs(int(c[i+1])-int(a)):t = c[i+1]c[i+1] = c[i]c[i] = telif abs(int(c[i])-int(a)) == abs(int(c[i+1])-int(a)) and int(c[i])>int(c[i+1]):t = c[i + 1]c[i + 1] = c[i]c[i] = t
print(c)

输出结果为

50 10
50 10
49 50 52 47 40 43 53 55 42 44
['49', '50', '52', '47', '40', '43', '53', '55', '42', '44']
['50', '49', '52', '47', '53', '55', '44', '43', '42', '40']

知识点1:

输入为一行两个数字,用空格分开,输出同样的内容。

a,b=map(int,input().split())
print(a,b)

结果为

11 22
11 22

map() 函数语法,map(function, iterable, ...),

  • function -- 函数
  • iterable -- 一个或多个序列

如把代码的int改为square,则输出是11的平方和十二的平方

如果只是单纯的输入数字的话返回的是列表的形式,split()以空格为分隔。如

a = input().split()
print(a)

输出

11 22 33
['11', '22', '33']

for i in c 用于获取c列表总每个元素,如

c=(input().split())
print(c)
for i in c:print(i)

输出

11 22 1112 32
['11', '22', '1112', '32']
11
22
1112
32

  相关解决方案