download:协程原理从入门到精通 每个后端开发都需要掌握的高性能开发技术

协程知识在很多课程中都有提到,但都是浅尝即止,均不深入。本课程作为市面上首门协程专题课程,将从基础讲起,与应用原理联动起来,深入协程原理更易于理解,结合丰富的课程案例,并使用Python语言进行落地实践。但一法通则万法通,不管你是Java、Go还是PHP开发,都可以通过本门课程掌握协程原理。对于初中级开发而言,是一门非常适合起手学习高性能开发的课程。

适合人群
希望掌握进程、线程、协程底层原理的同学
想突破业务瓶颈,提高项目并发能力的工程师
面试一问就懵,想系统梳理下协程知识的同学
技术储备要求
具备Python语法基础
有后端项目经验

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 ("闰年")
復製代码
6。Python統計字符串中數字,字母,漢字的個數
復製代码
1 import re
2 str_test='abcdefgHABC123456中華民族'
3
4 #把正則表達式編译成對象,假如經常運用該對象,此種方式可進步一定效率
5 num_regex = re.compile(r'[0-9]')
6 zimu_regex = re.compile(r'[a-zA-z]')
7 hanzi_regex = re.compile(r'[\u4E00-\u9FA5]')
8
9 print('輸入字符串:',str_test)
10 #findall獲取字符串中一切匹配的字符
11 num_list = num_regex.findall(str_test)
12 print('包含的數字:',num_list)
13 zimu_list = zimu_regex.findall(str_test)
14 print('包含的字母:',zimu_list)
15 hanzi_list = hanzi_regex.findall(str_test)
16 print('包含的漢字:',hanzi_list)
復製代码
#羊車門問題

復製代码
1 import random as r
2
3 #總次數
4 total=1000000 #1000,1W,10W,100W
5 #換與不換的獲勝次數
6 win1=0
7 win2=0
8
9 for i in range(total):
10 #模仿選择過程
11 man=r.randint(1,3)
12 car=r.randint(1,3)
13 #結果:一開端爲車門,不換+1.
14 # 否則則一開端爲羊門,換+1.
15 if man==car:
16 win1+=1
17 else:
18 win2+=1
19
20 print("在{}次實驗中:".format(total))
21 print("若不更改門,獲勝概率爲{:.3}%.".format((win1/total)100))
22 print("若更改門,獲勝概率爲{:.3}%.".format((win2/total)
100))
復製代码
復製代码
1 import random
2 x=random.randint(5000,10000)
3 print(x)
4 change=0
5 nochange=0
6 for i in range(1,x+1):
7 a=random.randrange(1,4)
8 b=random.randrange(1,4)
9 if a==b:
10 nochange=nochange+1
11 else:
12 change=change+1
13 print("不更改組择得到汽車的概率爲{:.2f}".format(nochange/x))
14
15 print("更改組择得到汽車的概率爲{:.2f}".format(change/x))

©著作权归作者所有:来自51CTO博客作者mb60197e6497b3a的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 我的第八个代码
  2. BADI Copy PR item text to PO when ME21N
  3. (EXIT)Copy PR header text to PO header when ME21N
  4. (BADI)Copy PR header text to PO header when ME21N
  5. 这样规范写代码,同事直呼“666”
  6. GitHub等三大平台遭勒索,***给出十天期限:不交赎金即公开用户代码
  7. 我的第六个代码
  8. 我的第五个代码
  9. 我的第四个代码

随机推荐

  1. 如何使用RequireJS扩展配置
  2. 如何在涉及css缩放时获取页面上的点击位
  3. CORS错误:请求标头字段预检响应中的Access
  4. 使数字成为另一个数字的因素(性能问题)
  5. 什么是一个很好的JS库,可以调整大小?
  6. extjs4 desktop 实现仿win7效果的桌面窗
  7. 谷歌地图API V3的使用限制是每个网站访问
  8. 可编辑的jquery表格插件
  9. Js中获取超链接里面传递的参数值
  10. 如何在SOF上的新帖子中没有像“Grippie”