python 笔记总结

时间:2023-03-09 19:34:52
python 笔记总结

python  3.5

面向对象:
类:具有同种属性的对象称为类,是个抽象的概念。比如说:汽车、人、狗、神;
对象:日常生活中的所有东西都是对象,是类的实例化。比如说:推土车是汽车的实例化;姚明是人的实例化;小白(狗的名字)是狗的实例化;二郎神是神的实例化;
属性:用来描述具体某个对象的特征的是属性,是静态的。比如:姚明身高2.6米多;小白的毛发是棕色的;二郎神额头上有只眼睛;
方法:每个对象有它们自己的行为或者是使用它们的方法,比如说一只狗会跑会叫等,我们把这些行为称之为方法,是动态的,可以使用这些方法来操作一个对象;
类的成员:属性和方法称为这个对象的成员,因为它们是构成一个对象的主要部分,没有了这两样东西,那么对象也没什么存在意义了。


一、基础:

1、变量

  a = 1   #a是变量,1是变量a对应的值
print(a) name = jack #name是变量,jack是变量name对应的值
print(name) counter = 100 # 赋值整型变量(int)
miles = 1000.0 # 浮点型(float)
name = "John" # 字符串 (str) a = b = c = 1 #同时为多个变量赋值
a, b, c = 1, 2, "john" #为多个对象指定多个变量
(两个整型对象1和2的分配给变量a和b,字符串对象"john"分配给变量c。)

2、输入

name = input('please enter your name: ') #获取用户输入
print('hello,', name) #输出

3、可变列表

list是一种有序的集合,可以随时添加和删除其中的元素

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] #列表用[] 

L.pop(1)#删除指定位置的元素,1是索引位置

L.insert(1, 'Lisa')#元素插入到指定的位置

L.append('Adam')#list中追加元素到末尾

L[2] = 'Tom'#某个元素替换成别的元素,可以直接赋值给对应的索引位置

s = ['python', 'java', ['asp', 'php'], 'scheme']#list元素也可以是另一个list

4、不可变元组

 L = ('Michael', 'Sarah', 'Tracy', 'Bob', 'Jack') #元组用()
t = (1,)#只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
t = ()#空元组

5、字典(dict)

字典类似于通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。

字典的每个键=>值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})

 d = {key1 : value1, key2 : value2 }#标准语法

 d = {'Alice': '', 'Beth': '', 'Cecil': ''}#根据名字查找分值
d['Alice']
2341 d.pop('Cecil')#用pop(key)方法,对应的value也会从dict中删除:

6、set

不能重复的key的集合

要创建一个set,需要提供一个list作为输入集合:

s = set([1, 2, 3])#标准输入set()
s
{1, 2, 3} s = set([1, 1, 2, 2, 3, 3])#重复元素在set中自动被过滤:
s.add(4)#通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
s.remove(4) #通过remove(key)方法可以删除元素:

7、列表截取

L[2]#读取列表中第三个元素
L[-2]#读取列表中倒数第二个元素
L[1:]#从第二个元素开始截取列表
L[:10:2]#前10个数,每两个取一个
L[::5]#所有数,每5个取一个:

8、元组截取

(0, 1, 2, 3, 4, 5)[:3]

9、列表生成式

  list(range(1, 11))#生成列表list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[x * x for x in range(1, 11)]#生成[1x1, 2x2, 3x3, ..., 10x10]列表
[x * x for x in range(1, 11) if x % 2 == 0] #筛选出仅偶数的平方_x % 2 ==0 就是x除以2余数为0 ,代表能被2整除 。

10、生成器(generator)

psaa

11、迭代器

pass

二、函数:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
 #基本函数定义
def func():
print('f') name() # 带返回值的函数。
def func():#定义 fun 函数
return('返回值函数')#返回值
print(func())#打印函数,返回return的值
返回值函数 # 带多个返回值的函数。
def func_with_muti_return():
return ("func_with_muti_return", "func_with_muti_return")#返回两个值 print(func_with_muti_return())
('func_with_muti_return', 'func_with_muti_return')#函数可以同时返回多个值,但其实就是一个tuple。 # 位置参数
def power(x):#对于power(x)函数,参数x就是一个位置参数。
return x * x# 返回x的平方
power(5)
25 #函数有两个参数:name和gender
def enroll(name, gender):
print('name:', name)
print('gender:', gender)
enroll('Sarah', 'F')#调用函数时,传入的两个值按照位置顺序依次赋给参数name和gender。
name: Sarah
gender: F #默认值参数
def power(x, n=2):#把第二个参数n的默认值设定为2:
s = 1
while n > 0:
n = n - 1
s = s * x
return s
power(5)#调用power(5)时,相当于调用power(5, 2):
25 #可变参数,参数的个数是可多可少的,这些可变参数在函数调用时自动组装为一个tuple。
def calc(*numbers):#在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple
sum = 0
for n in numbers:
sum = sum + n * n
return sum
calc()
0 nums = [1, 2, 3]#已经有一个list或者tuple,要调用一个可变参数怎么办
calc(*nums)
14 #关键字参数 关键字参数在函数内部自动组装为一个dict:
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw) extra = {'city': 'Beijing', 'job': 'Engineer'}#先组装出一个dict
person('Jack', 24, **extra)#**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。 #命名关键字参数 限制关键字参数的名字,就可以用命名关键字参数
def person(name, age, *, city, job):
print(name, age, city, job)#和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。 person('Jack', 24, city='Beijing', job='Engineer')#调用函数
Jack 24 Beijing Engineer def person(name, age, *args, city, job):#如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:
print(name, age, args, city, job) 使用命名关键字参数时,要特别注意,如果没有可变参数,就必须加一个*作为特殊分隔符。 #参数组合
可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw) pass 不理解