Python 知识点练习
1 #函数应用:计算两个正数的最大公约数和最小公倍数 2 def function1(n1,n2): 3 if n1 > n2: 4 n1 , n2 = n2 , n1 5 for i in range(n1,0,-1): 6 if n1 % i == 0 and n2 % i == 0: 7 return i 8 def function2(n1,n2): 9 return n1*n2//function1(n1,n2) 10 11 #函数应用:判断是否为素数 12 def sushu(number): 13 a = 2 14 for i in range(2 , number - 1): 15 if number % i == 0 : 16 a = 1 17 if a == 1: 18 return False 19 else: 20 return True 21 #运用 22 s1 = 'hello ' * 4 23 s2 = 'hello,world' 24 print(len(s1),s2.title(),s1.upper()) 25 print(s1.index('lo')) 26 print('{0} * {1} = {2}'.format(s1,s2,s1 + s2)) 27 28 #列表 29 list1 = [3,4,5,6,7,88,90] 30 print(list1) 31 a = list1[3:5] 32 b = list1[2] 33 print(a,b) 34 for x in range(len(list1)): 35 print(list1[x]) 36 for index, elem in enumerate(list1): 37 print(index,elem) 38 list1.append(b) 39 list1.insert(4,20) 40 print(list1) 41 list2 = ['sdf','alte','cllect','fast','baby'] 42 list3 = sorted(list2) 43 list4 = list2.sort(reverse = True) 44 print(list2,'\n',list3,'\n',list4) 45 46 #生成器 47 import sys 48 list1= [x for x in range(1,10)] 49 print(list1) 50 print(sys.getsizeof(list1)) 51 52 #元组 53 import sys 54 list1 = ('cmd',5,'贵州遵义') 55 print(list1,sys.getsizeof(list1)) 56 57 #集合不存在重复性 58 set1 = {1, 4, 23, 55, 43,4} 59 print(set1) 60 print('lenth:', len(set1)) 61 set1.add(88) 62 set1.update([5,7]) 63 set1.discard(4) 64 set1.remove(1) 65 print(set1) 66 set2 = set(range(0,5)) 67 print(set2) 68 print(set1 & set2) 69 print(set1 | set2) 70 print(set1 - set2) 71 print(set1 <= set2) 72 print(set1 ^ set2) 73 74 #字典 75 scores = dict(a = 1, b = 3, c = 6) 76 scores1 = {'gz':20,'sc':66,'zy':3} 77 print(scores) 78 print(scores1) 79 cs = scores1['gz'] 80 print(cs) 81 for key in scores: 82 print(key,scores[key]) 83 84 #类 85 class studengt(object): 86 def __init__(self, name,age): 87 self.name = name 88 self.age = age 89 def study(self, discipline): 90 print('%s正在学习%s。'%(self.name, discipline)) 91 def whatch(self): 92 if self.age < 18: 93 print('%s正在看 熊出没' %self.name) 94 else: 95 print('%s正在看 迪迦.'%self.name) 96 def studengt1(): 97 stu1 = studengt('wgy', 23) 98 stu1.whatch() 99 stu1.study('zgggS') 100 101 print(studengt1()) 102 103 from time import sleep 104 class day(): 105 def __init__(self, hour = 0, minute = 0, second = 0): 106 self.hour = hour 107 self.minute = minute 108 self.second = second 109 def cycle(self): 110 self.second += 1 111 if self.second == 60: 112 self.second = 0 113 self.minute += 1 114 if self.minute == 60: 115 self.minute = 1 116 self.hour += 0 117 if self.hour == 24: 118 self.hour = 0 119 def disply (self): 120 print('%02d : %02d : %02d' %(self.hour, self.minute, self.second)) 121 122 def main(): 123 time = day(12,33,44) 124 while True: 125 day.disply( time) 126 sleep(1) 127 day.cycle(time) 128 if __name__ == '__main__': 129 main() 130 131 #正则表达式(qq,用户名) 132 import re 133 #调用正则表达式模块re 134 def main(): 135 user_name = input('请输入用户名:') 136 qq_number = input('请输入qq号:') 137 m1 = re.match(r'^[0-9a-zA-Z]{6,20}$', user_name) #判断格式是否符合 138 m2 = re.match(r'^[1-9]\d{4,11}', qq_number) 139 if not m1: 140 print('用户名不存在') 141 if not m2: 142 print('qq不存在') 143 if m1 and m2: 144 print('格式正确') 145 146 print(main()) 147 148 #多进程实现文件下载 149 from multiprocessing import Process 150 #linux用os模块fork()函数创建进程 151 #Windows用multiprocessing模块中的Process类创建进程 152 from os import getpid 153 #返回进程号 154 from random import randint 155 from time import time, sleep 156 def downlode(filename): 157 print('启动下载程序,进程号%s' % getpid) 158 print('开始下载%s...' %filename) 159 downlode_time = randint(5,10) 160 sleep(downlode_time) 161 print('%s下载完成!耗费%d秒' %(filename, downlode_time)) 162 163 def main(): 164 start = time() #开始计时 165 m1 = Process(target = downlode, args = ('python从零开始.ptf', )) 166 #Process类创建了进程对象,通过target参数我们传入一个函数来表示进程启动后要执行的代码,后面的args是一个元组,它代表了传递给函数的参数。 167 m1.start() 168 m2 = Process(target= downlode, args = ('python的多进程.ptf', )) 169 m2.start() 170 #start方法用来启动进程 171 m1.join() 172 #join方法表示等待进程执行结束 173 m2.join() 174 end = time() #结束计时 175 print('总共耗费了%.2f秒' %(end - start)) 176 177 if __name__ == '__main__': 178 main() 179 180 #多进程实现文件下载 181 from threading import Thread 182 from random import randint 183 from time import time, sleep 184 def download(filename): 185 print('%s文件开始下载....' %filename) 186 time_filename = randint(5, 12) 187 sleep(time_filename) 188 print('%s下载结束,下载花费%d秒' %(filename, time_filename)) 189 def main(): 190 start = time() 191 m1 = Thread(target = download, args = ('python从零开始.ptf', )) 192 m1.start() 193 m2 = Thread(target = download, args=('pytn的多线程应用.pdf', )) 194 m2.start() 195 m1.join() 196 m2.join() 197 end = time() 198 print('总耗费%d秒.' %(start - end)) 199 if __name__ == '__main__': 200 main() 201 202 #API的调用 203 from time import time 204 from threading import Thread 205 import requests 206 class daygas(): 207 def __init__(self, url): 208 self.url = url 209 210 def run(self): 211 resp = requests.get(self.url) 212 with open(daygas.json,'w') as f: 213 f.write(resp) 214 def main(): 215 resp = requests.get('http://api.tianapi.com/txapi/tianqi/index') 216 for x in resp: 217 url = x 218 daygas(url) 219 220 if __name__ == '__main__': 221 main() 222 223 #操作图像 224 from PIL import Image 225 image = Image.open('C:/Users/ASUS/Pictures/Saved Pictures/1.jpg') 226 print(image.format, image.size, image.mode) 227 image.show() 228 rect = 60, 30, 330, 340 229 image.crop(rect).show()