Linux运维工程师面试题第六套

简介:

这次是Python10道脚本,主要是从中感受到Python编程思想,有时候shell和python的编程要注意细节,但是两者有很大的相同之处。Enjoy it~

-------------------------------------------------------------------------------------------

1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

【思路】设定a是range(1,5)的一个,b和c也是。互不相同且不重复,那就是a不等于b也不等于c,同时b也不等于c。

1
2
3
4
5
>>>  for  in  range  ( 1 , 5 ):
for  in  range  ( 1 , 5 ):
for  in  range ( 1 , 5 ):
if  (a! = b) and (b! = c) and (c! = a):
print  (a,b,c)


2、输入某年某月某日,判断这一天是这一年的第几天?

【思路】YY=int(input("请输入一个年份"))    #硬性语言要求要加上int

    MM=int(input("请输入一个月份"))

    DD=int(input("请输入一个日期"))

    上来先读取三个数字,然后先判断 YY %4==0 还是 !=0,如果是等于0,那么2月份就是29天,不然就是28天。

    YY除以4是否有余数作为第一个判断,然后再将每一个月的天数累计相加对应每一个月,比如当YY %4=0的时候,MM=1,天数的起始值是31,MM=2,天数的起始值是60,以此类推,手动把12个月的天数先算出来,然后在加上DD的天数,就能得到总的天数。


3、输入三个整数x,y,z,请把这三个数由小到大输出。

【思路】列表的功能是可以排列的,.sort()是从小到大排列,.reverse()是从大到小排列。于是乎,先设定一个空列表,然后不断地往里面添加元素,最用.sort()一下即可。

1
2
3
4
5
6
7
8
9
AAA = []
a = int ( input ( "sign a number:" ))
AAA.append(a)
b = int ( input ( "sign the second number:" ))
AAA.append(b)
c = int ( input ( "sign the third number:" ))
AAA.append(c)
AAA.sort()
print (AAA)

【注意】这个如果打算用笨招---用if把一种情况一种情况纷纷写出来的话是可以的,但是要注意,print(abc)是会出错误的,因为abc是一个新的变量了。


4、输出9*9乘法口诀表。

【思路】这个跟第一个题很相似。

1
2
3
4
for  in  range ( 10 ):
   for  in  range ( 10 ):
     AAA = i * j
     print ( str (i) + "乘以" + str (j) + "等于" + str (AAA))

这里的难点就是如何把“数字”和“字符串”整合在一起输出。


5、显示当前时间,然后暂停10秒输出下10秒时间。

【思路】Python time.strftime() 函数是一个挺难记的函数,不过这个就是实用性的考题,不会有哪个公司蛋疼的拿出来当真考试用。

1
2
3
4
5
6
import  time
AAA = (time.strftime( '%Y-%m-%d %H:%M:%S' ,time.localtime(time.time())))
time.sleep( 10 )     # 中间休息10秒
BBB = (time.strftime( '%Y-%m-%d %H:%M:%S' ,time.localtime(time.time())))
print (AAA)
print (BBB)


6、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

【思路】不用傻乎乎的if x in [1,2,3,4,5,6,7,8,9],然后判断是否是数字等等。用.isalpha()来判断是不是字母,用.isspace()来判断是不是空格,用.isdigit()来判断是不是数字。当然这个可以用正则来做,然后len一下就搞定,这里用的方法是.isdigit()。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
AAA = input ( "请输入一行字符" )
x = 0
y = 0
z = 0
for  in  AAA:
     if  i.isalpha():
     x = x + 1
     if  i.isspace():
     y = y + 1
     if  i.isdigit():
     z = z + 1
     print ( "字母的个数是" + str (x))
     print ( "空格的个数是" + str (y))
     print ( "数字的个数是" + str (z))


7、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

【思路】若H=100,第一次弹起的高度L=H/2,第二次就是L=H/4,第三次L=H/8,分母是2的幂关系,同时共经过的距离就是H不断的加上这些L,这是一个无脑重复性任务,所以可以用for in语句。

1
2
3
4
5
6
7
H = 100
L = H / 2
for  in  range  ( 2 , 11 ):
     H = H + L / 2
     L = L / 2
     print ( "第" + str (i) + "次总共经过了" + str (H) + "米" )
     print ( "第" + str (i) + "次的球反弹了" + str (L) + "米" )


8 、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

【思路】对于列表来说,.sort()是正序,而.reverse()是逆序

1
2
3
4
5
6
7
8
9
10
11
I = []
i = 0
AAA = input ( "请输入一个正整数:" )
for  in  AAA:
     i = i + 1
     I.append(x)
     
print ( "这是一个" + str (i) + "位数" )     #注意这个print的位置,如果不是顶头的话,会是什么呢?
I.sort()      
I.reverse()
print (I)


9、按相反的顺序输出列表的值。

【思路】先设定一个空列表,然后一个一个的.append进去,然后使用[::-1]就是相反顺序输出。

1
2
3
4
5
AA = []
JJC = input ( "come:" )
for  in  JJC:
     AA.append(i)
print (AA[:: - 1 ])


10、以下函数的输出结果是什么呢?

def hello_world():

    print ('hello world')


def three_hellos():

    for i in range(3):

        hello_world()

if __name__ == '__main__':

    three_hellos()

【思路】hello_world这个函数的效果就是输出"hello,world",但是在three_hellos套用了这个hello_world这个函数,而且在for in语句里,这里没有i,于是就是重复三次hello_world函数。

---------------------------------------分割线----------------------------------------------

这里尽可能的没有涉及到太多的数学题,本人个人很反感把python当成理论数学的计算工具,毕竟在实际工作里接触不到,这十个就是乐呵乐呵,重新体验一下python的基本功。



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1743535

相关文章
|
弹性计算 运维 安全
为了提升运维工程师及开发者
为了提升运维工程师及开发者
|
云安全 运维 安全
AK泄漏28小时:运维工程师的极限自救
随着比特币等加密货币的价格持续上涨,挖矿活动成为了黑客们眼中的一块肥肉。尤其是在2024年至2025年间,比特币价格突破历史高位,吸引了大量投资者和投机者的目光。与此同时,这也引发了新一轮的黑客攻击浪潮,目标直指那些拥有强大计算资源的企业和个人用户。
|
域名解析 网络协议 安全
|
运维 监控 网络协议
|
存储 运维 搜索推荐
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
1219 3
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
2298 2
|
人工智能 运维 自然语言处理
今晚围观—>安全运维工程师现场直播用通义灵码发现和修复代码漏洞
12 月 18 日晚 19:30 分,阿里云中小企业直播间「AI 编码助手一年养成记:从“打酱油”到企业开发“真正助手”」见。
|
网络协议 网络架构
OSPF邻居关系建立失败?揭秘网络工程师面试中最常见的难题,这些关键步骤你掌握了吗?网络配置的陷阱就在这里!
【8月更文挑战第19天】OSPF是网络工程中确保数据高效传输的关键协议。但常遇难题:路由器间无法建立OSPF邻居关系,影响网络稳定并成为面试热点。解决此问题需检查网络连通性(如使用`ping`),确认OSPF区域配置一致(通过`show running-config`),校准Hello与Dead计时器(配置`hello`和`dead`命令),及核查IP地址和子网掩码正确无误(使用`ip address`)。系统排查上述因素可确保OSPF稳定运行。
525 2
|
Ubuntu Linux Shell
这7个重要的Linux命令,每一位Linux工程师都必须盘它!
这7个重要的Linux命令,每一位Linux工程师都必须盘它!
150 0