笔试题

1.请用Python列表推导式打印100以内被7整除的平方数

注:当时看到这道题时感觉有点歧义:(平方数的值是在100以内,还是100以内能被7整除的数再平方?)同时由于之前刚开始接触Python不久,对列表推导式理解不是很多,大概知道输出的方式是以列表的形式,我们知道一般python有脚本执行和交互执行,当时脑抽选了脚本的方式,还写少了,应该选择交互方式更容易实现。

第一种:

[root@zabbixclient python]# python
Python 3.4.5 (default, May 25 2017, 18:51:46) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> [x*x for x in range(100) if x%7 == 0 and x*x<=100] 
[0, 49]
>>> 

第二种:

[root@zabbixclient python]# python
Python 3.4.5 (default, May 25 2017, 18:51:46) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> [x*x for x in range(100) if x%7 == 0 ]
[0, 49, 196, 441, 784, 1225, 1764, 2401, 3136, 3969, 4900, 5929, 7056, 8281, 9604]
>>> 
2.写一个脚本,输出年份月份可以打印当月的天数

注:这道题一开始思路是直接用判断,但当时考虑太多,又是要手写,没啥感觉,所以当时这道题没写,脚本还是敲着测试比较有感觉。。。

[root@zabbixclient python]# cat days
#!/root/.pyenv/shims/python3
year = int(input("请输入需要查询的年份: "))
month = input("请输入需要查询的月份: ")
day_31 = ["1","3","5","7","8","10","12"]
day_30 = ["4","6","9","11"]
if int(month) == 2:
    if year % 4==0 and year % 100!=0:
	    days=29
    else: 
	    days=28
else:
    if month in day_30:
	    days=30
    elif month in day_31:
		    days=31
print("%s年,%s月的天数为:%s"%(year,month,days))
[root@zabbixclient python]# ./days
请输入需要查询的年份: 2017
请输入需要查询的月份: 2
2017年,2月的天数为:28
[root@zabbixclient python]# ./days
请输入需要查询的年份: 2016
请输入需要查询的月份: 2
2016年,2月的天数为:29
[root@zabbixclient python]# ./days

写完查找相关资料后发现Python有个模块calendar,直接调用就可以输出对应的日历月份。。。

[root@zabbixserver python]# cat test 
#!/root/.pyenv/shims/python3
import calendar

year=int(input("Please Enter a Year: "))
month=int(input("Please Enter a Month: "))

print (calendar.month(year,month))
[root@zabbixserver python]# ./test 
Please Enter a Year: 2017
Please Enter a Month: 2
   February 2017
Mo Tu We Th Fr Sa Su
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28

[root@zabbixserver python]# 
3.iptables

用iptables限制ip:10.1.1.2 (mac) aa:bb:cc:Dd:ee:ff 访问我的80端口

限定mac地址的玩法之前还没试过,而且在公网一般无法获取到mac,故这道题没写,哈哈
iptables -A INPUT -s 10.1.1.2 -m mac --mac-source aa:bb:cc:Dd:ee:ff -p tcp --dport 80 -j DROP

未完待续,忙其他事了

收集的小技巧:
案例1:
要求: shell如何将aaa bbb ccc ddd 这个四个字符串生成所有组合 不能有字符重复(不能有2个或多个字符串在一个组合中出现)

[root@master ~]# echo {aaa,bbb,ccc,ddd}{aaa,bbb,ccc,ddd}{aaa,bbb,ccc,ddd}{aaa,bbb,ccc,ddd} |xargs -n1 |grep -vE '(...).*\1'
comments powered by Disqus