Tornado从入门到进阶 打造支持高并发的技术论坛
作者:互联网
download:Tornado从入门到进阶 打造支持高并发的技术论坛
在本课程中,我们从tornado的基础开发到项目实战进行系统讲解,覆盖理论与实践,完成本课程可以更透彻的理解异步IO并发编程思想,以及正确使用tornado进行并发编程,做一个支持高并发的技术论坛项目!
适合人群
从事Python异步IO并发开发相关的开发人员
以及对Python并发编程感兴趣的开发人员
技术储备要求
有一定的编程功底,了解Python socket编程,
了解web开发和网络协议
import random
2 if name =="main": #四位數字字母考證码的生成
3 checkcode="" #保管考證码的變量
4 for i in range(4):
5 index=random.randrange(0,4) #生成一個0~3中的數
6 if index!=i and index +1 !=i:
7 checkcode +=chr(random.randint(97,122)) # 生成a~z中的一個小寫字母
8 elif index +1==i:
9 checkcode +=chr(random.randint(65,90) ) # 生成A~Z中的一個大寫字母
10 else:
11 checkcode +=str(random.randint(1,9)) # 數字1-9
12 print(checkcode)
復製代码
輸出爲:m47A、8wQ9、vugS
2。格式化時間函數
1 def formatTime(longtime):
2 '''格式化時間的函數'''
3 import time
4 return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(longtime))
3。記载顯現登錄日誌實例
復製代码
import time
def show_info():
print('''輸入提示數字,執行相應操作
0:退出
1:查看登錄日誌
''')
def write_loginfo(username):
"""
將用戶名和登錄時間寫入日誌
:param username: 用戶名
"""
with open('log.txt','a') as f:
string = "用戶名:{} 登錄時間:{}\n".format(username ,time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
f.write(string)
def read_loginfo():
"""
讀取日誌
"""
with open('log.txt','r') as f:
while True:
line = f.readline()
if line == '':
break # 跳出循環
print(line) # 輸出一行内容
if name == "main":
輸入用戶名
username = input('請輸入用戶名:')
# 檢測用戶名
while len(username) < 2 :
print('用戶名長度應不少於2位')
username = input('請輸入用戶名:')
# 輸入密码
password = input('請輸入密码:')
# 檢測密码
while len(passw ord) < 6 :
print('密码長度應不少於6位')
password = input('請輸入密码:')
print('登錄勝利')
write_loginfo(username) # 寫入日誌
show_info() # 提示信息
num = int(input('輸入操作數字:')) # 輸入數字
while True:
if num == 0:
print('退出勝利')
break
elif num == 1:
print('查看登錄日誌')
read_loginfo()
show_info()
num = int(input('輸入操作數字:'))
else:
print('您輸入的數字有誤')
show_info()
num = int(input('輸入操作數字:'))
3。模仿淘寶客服自動回復
復製代码
1 # 任務2:模仿淘寶客服自動回復
2
3 def find_answer(question):
4 with open('reply.txt','r') as f :
5 while True:
6 line=f.readline()
7 if not line: #也能夠爲if line==''
8 break
9 keyword=line.split('|')[0]
10 reply=line.split('|')[1]
11 if keyword in question:
12 return reply
13 return '對不起,沒有妳想要找的問題'
14
15 if name =='main':
16 question=input('請輸入想要發問的内容:')
17 while True:
18 if question=='bye':
19 break
20 reply=find_answer(question)
21 if not reply:
22 question=input("小蜜不懂您在說什麼,您能夠問一些與订單、账戶和支付相關的内容(退出請輸入bye):")
23 else:
24 print(reply)
25 question=input("您能夠問一些與订單、账戶和支付相關的内容(退出請輸入bye):")
26 print('谢谢,再見!')
27
復製代码
復製代码
4。求最大條約數和最小公倍數 (辗轉相除法)
最大條約數:指兩個或多個整數共有約數中最大的一個
最小公倍數:兩個或多個整數公有的倍數叫做它們的公倍數,其中除0以外最小的一個公倍數就叫做這幾個整數的最小公倍數
二者關係:兩個數之積=最小公倍數*最大條約數
復製代码
1 a=int(input('輸入數字1:'))
2 b=int(input('輸入數字2:'))
3 s=a*b
4 while a%b!=0:
5 a,b=b,(a%b)
6 print(a)
7 print(b)
8 else:
9 print(b,'is the maximum common divisor最大條約數')
10 print(s//b,'is the least common multiple,最小公倍數')
復製代码
更相減损法
復製代码
1 a=int(input('please enter 1st num:'))
2 b=int(input('please enter 2nd num:'))
3 s=a*b
4
5 while a!=b:
6 if a>b:
7 a-=b
8 elif a<b:
9 b-=a
10 else:
11 print(a,'is the maximum common divisor')
12 print(s//a,'is the least common multiple')
13
14 #運轉結果
15 please enter 1st num:40
16 please enter 2nd num:60
17 20 is the maximum common divisor
18 120 is the least common multiple
復製代码
5。判別能否爲闰年 (辗轉相除法)
復製代码
1 # 判別能否爲闰年
2 while True:
3 try:
4 num=eval(input("請輸入一個年份:"))
5 except:
6 print('輸入錯誤年份')
7 continue
8 if (num %4==0 and num%100 !=0) or num %400==0:
9 print(num,"是闰年")
10 else:
11 print(num,"不是闰年")
復製代码
復製代码
import calendar
year = int(input("請輸入年份:"))
check_year=calendar.isleap(year)
if check_year == True:
print ("闰年")
else:
print ("闰年")
标签:进阶,Tornado,請輸入,輸入,num,print,input,技术论坛,數字 来源: https://blog.51cto.com/15101018/2629433