python日常工作
分析nginx日志,得出用户ip及用户相关信息、(访问次,流量量大,相应时间)
logip = {'1.1.1.1':[200,20M,1S],}
’please‘ enter your want ip info:’
题: 采集用户的输入,输入ip,并采集相应ip的访问次数,流量,响应时间。至少采集三组数据
命令一:
logip = {}
ip = input('please enter your ip: ')
count = input('please enter {} counts:' .format(ip))
size = input('{} size: '.format(ip))
time = input('{} time: '.format(ip))
logip[ip] = [count.strip(),size.strip(),time.strip()]
print(logip)
方法二:(自认为这种简单)
logip = {}
ip = input('please enter your ip: ')
count = input('please enter your counts: ')
size = input('please enter your size: ')
time = input('time: ')
logip[ip] = [count,size,time]
练习: 猜数游戏,程序随机生成一个1-100之间的整数,然后和用户交互让用户猜生成的 数是多少。如果数猜大了,则输出"too big",再次等待用户输入猜数。如果用户猜小了,则 输出" too small" ,再次进入用户输入 猜数。如果用户猜对了,刚输出"Surprise! you are right!"并退出程序。
import random
randnum = random.randint(1,100)
while True:
num = input('please enter your guests: ')
if not num.isdigit():
print(' {}error'.format(num))
continue
num = int(num)
if num > randnum:
print(' {}is the big'.format(num))
elif num < randnum:
print(' {}is the small'.format(num))
else:
print('good job')
将一个列表中的偶数分开:
number = ['25','36','56','78','62','36']
L = []
while number:
tmp =number.pop(0)
if tmp.isdigit():
tmp = int(tmp)
if tmp % 2 ==0:
L.append(tmp)
print(L)
是否有质数:
num = 5
a = 2
while a < 5:
if num % a ==0:
print(' {}is not a zhishu'.format(num))
break
a += 1
else:
print(' {}is a zhishu'.format(num))
将数字从大到小排序:
a = [23,25,1,26,2,6,7]
yuner = []
while len(a) > 1:
tmp = a.pop(0)
for i in range(len(a)):
if tmp > a[i]:
a[i],tmp = tmp,a[i]
yuner.append(tmp)
else:
yuner.append(a[0])
print(yuner)
查找/etc/passwd 结尾以/bash结尾的用户:
with open('/etc/passwd','r') as fp:
for line in fp:
line = line.strip()
if line.endswith('bash'):
name = line.split(':')[0]
print(name)
打印出菱形:
def lx(row=7):
ret = list(range(1,row+1,2))
tmp =ret[:-1][::-1]
ret.extend(tmp)
return ret
row = 7
ret = lx(row)
for line in ret:
a = '*' * line
print(a.center(row))
打印心形图案:
print("\n".join([''.join(['*'*((x-y)%3)
if((x*0.05)**2+(y*0.1)**2 -1)**3-(x*0.05)**2*(y*0.1)**3 <= 0
else ' '
for x in range(-30,30)])
for y in range(15,-15,-1)]))
要求,正数在前负数在后 2、整数从小到大 3、负数从小到大
a =[1,36,56,4,6,-1,0,-5]
yuner = sorted(a,key=lambda x:(x<0,abs(x)))
print(yuner)
求出整数的倍数:
斐波那契数列,fib = [1,1] 要求输出一个交互界面,当用户输入数字时就显示相应位的斐波那契数,如果用户输入 exit或quit则退出程序,如果用 户输入的是一个非自然数则提示用户输入错误,并告诉用户如何使用。
列表去重
5、执行程序,用户输入一下年份,打印此年是平年还是闰年。 ①、某年能被4整除且不能被100整除的为闰年(2004是闰年,1901年不是闰年) ②、某年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年) ③、对于数值很大的年份(不小于3200),这年如果能整除3200,并且能整除172800则是闰年。如172800年是闰年,3200、86400年不是闰年(因为虽然 能整除3200,但不能整除172800)
猜数游戏,程序随机生成一个1-100之间的整数,然后和用户交互让用户猜生成的数是多少。如果数猜大了,则输出"too big",再次等待用户输入猜 数。如果用户猜小了,则输出"too small",再次进入用户输入 猜数。如果用户猜对了,刚输出"Surprise! you areright!"并退出程序。
在网页上随便获取一个图片:
##############################################################3
斐波那契数列,fib = [1,1] 要求输出一个交互界面,当用户输入数字时就显示相应位的斐 波那契数,如果用户输入 exit或quit则退出程序,如果用户输入的是一个非自然数则提示用 户输入错误,并告诉用户如何使用。
def getfib(n):
fib = [1,1]
while len(fib) < n:
tmp = fib[-1] + fib[-2]
fib.append(tmp)
return fib[n-1]
if __name__ == '__main__':
while True:
num = input('please enter a number:')
num = num.strip().lower()
try:
num = int(num)
ret = getfib(num)
print(ret)
except:
if num == 'exit' or num == 'quit': break else: print('{} sorry is not shuzi'.format(num))