python基础(转)

mac2026-03-26  7

一、字典与集合

(1)字典

dict_test = {'name':'syd','age':24} print('姓名'+ dict_test['name']) print('年龄'+ str(dict_test['age'])) 姓名syd 年龄24 for v,k in dict_test.items(): print(v + ':' + str(k)) name:syd age:24 # 只取键 for k in dict_test.keys(): print(k) name age # 只取值 for v in dict_test.values(): print(v) syd 24

(2)集合

set_test = {1,7,3,4,5,6} # 添加 set_test.add("syd") print(set_test) {1, 3, 4, 5, 6, 7, 'syd'} # 删除 set_test.remove("syd") print(set_test) {1, 3, 4, 5, 6, 7} # 求交并差集 set_a = {1,2,3,4} set_b = {3,4,5,6} print("交" + str(set_a&set_b)) print("并" + str(set_a|set_b)) print("差" + str(set_a-set_b)) # ***** 集合是无序的,不支持排序,也不支持索引 交{3, 4} 并{1, 2, 3, 4, 5, 6} 差{1, 2}

(3)小技能 模糊查找

dict_test = {'syd':'1234567', 'lqy':'234235256', 'wyb':'21312356'} while(True): Str_name = input("请输入查找人姓名(可模糊查找)") for k,v in dict_test.items(): if k.startswith(Str_name): print(k + ':' + v) i = input("是否继续查找(y/n)") if i == 'n': break # startswith函数用于检擦字符串是否以指定子字符串开头,有返回Ture # startswith(str,beg,end) 请输入查找人姓名(可模糊查找)s syd:1234567 是否继续查找(y/n)y 请输入查找人姓名(可模糊查找)b 是否继续查找(y/n)l 请输入查找人姓名(可模糊查找)s syd:1234567 是否继续查找(y/n)l 请输入查找人姓名(可模糊查找)l lqy:234235256 是否继续查找(y/n)y 请输入查找人姓名(可模糊查找)b 是否继续查找(y/n)y 请输入查找人姓名(可模糊查找)w wyb:21312356 是否继续查找(y/n) 请输入查找人姓名(可模糊查找)n 是否继续查找(y/n)n

二、类和对象

(1) 基本介绍

类变量类方法

类生成对象,对象调用类方法

(2)创建类,对象,调用类方法

创建类:class关键字,根据缩进确定类范围创建对象: 对象 = 类名(变量) 如:t0 = Myclass()调用类方法:对象名.类方法名(参数) 如:t0.myfunction() # 创建类 class Myclass(): # 创建类变量 my_variable = 'sunyongdi' # 创建类函数 def my_function(self): print("hello world") # 创建类对象 my_object = Myclass() # 调用类变量 print(my_object.my_variable) # 调用类函数 my_object.my_function() sunyongdi hello world

(3) 最重要的init__()函数

# 创建类 class Myclass(): # 创建类变量 my_variable = 'sunyongdi' def __init__(self,input_variable): self.my_variable = input_variable print("hello python") # 创建类函数 def my_function(self): print("hello world") # 创建类对象 my_object = Myclass('哈哈') # 调用类变量 print(my_object.my_variable) # 调用类函数 # my_object.my_function() hello python 哈哈

三、生成器

一边循环一边计算的机制

# 一般生成 def get_fibos(n): """ 根据n生成Fibonacci,生成量由n决定 比如:n=10,就会生成10个Fibonacci数,一次性 """ a=b=1 i = 0 while i<n: i=i+1 a,b = a+b,a print(a) get_fibos(10) 2 3 5 8 13 21 34 55 89 144 def get_fibos(n): """ 根据n生成Fibonacci,生成量由n决定 比如:n=10,就会生成10个Fibonacci数,一次性 """ a=b=1 i = 0 while i<n: i=i+1 a,b = a+b,a yield a t0 = get_fibos(10) print(t0) for i in t0: print(i) # ***yield <generator object get_fibos at 0x0000022794669930> # 生成整数范围内的奇数 def get_odd_num(n): i = 1 m = 0 while m<n: yield i i += 2 m += 1 for i in get_odd_num(10): print(i) 1 3 5 7 9 11 13 15 17 19 # 自己生成随机数 from time import time def get_rand(n): m = 0 # 随机选择两个比较大的素数 p1 = 1200556037 p2 = 2444555770 # 限定最大随机数范围 max_rand = 2**32 # 获取随机数种子 r0 = int(time()*1000) while m<n: n = r0 n *= p2 n %= p1 # 第一次增强随机性 n += r0 n *= p2 n %= p1 # 第二次增强 n %= max_rand r0 = n m += 1 yield n for i in get_rand(10): print(i) ## __next__() ```python # fibos数 def get_fibos(n): a = b = 1 i = 0 while i<n: i = i+1 a,b = a + b ,a yield a t0 = get_fibos(5) print(t0.__next__()) print(t0.__next__()) print(t0.__next__()) print(t0.__next__()) print(t0.__next__()) 2 3 5 8 13
最新回复(0)