一、字典与集合
(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
请输入查找人姓名(可模糊查找)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
)
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
)
<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
)
```python
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