Python3学习笔记

参考教程:菜鸟教程

Python3

  • 基本语法
  • 数据类型
    • 不可变
      • String
    • 可变
  • 数组
    • 列表
    • 元组
    • 字典
    • 集合
  • 迭代器
  • 函数
  • 模块
  • 输入输出
    • print
  • 结构语句
    • 循环
      • for
  • 其他
    • 异常处理
    • 遍历

基本语法

;分隔同行两句代码

数据类型

类型是属于对象的,变量无类型,不需要提前创建
查询类型:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。

不可变

Number(数字)、String(字符串)、Tuple(元组)

String

stringname.endswith(strtocheck,start,end)

可变

List(列表)、Dictionary(字典)、Set(集合)

数组

数组从0开始,[0:5]表示从第一个到第5个,[0,-1]表示从第一个到倒数第二个,-1为倒数第一个

列表

元素可以修改
list1 = ['Google', 'Runoob', 1997, 2000];
pushback:list.append(x)
添加多个值:list.extend(seq)
从列表的指定位置移除元素,并将其返回list.pop([i]),a.pop()最后一个
删除一系列del a[2:4]
嵌套列表

元组

元素不能修改
tup1 = ('Google', 'Runoob', 1997, 2000)或者不加括号
单个:tup1 = (50,)
空:tup1 = ()

字典

key要是不可变类型
dict2 = { 'abc': 123, 98.6: 37 }
调用:dict['Name']
空:dict={}

  • 遍历
dataiter = iter(trainloader)
images, labels = dataiter.next()

集合

一个无序的不重复元素序列
parame = {value01,value02,...}
set(value)
空:a=set()
判断x在集合c内:x in c

迭代器

it = iter(list)
next(it)
__iter__(类)
__next__(类)

函数

def area(width, height):
    return width * height  #只有return的时候返回None

传递可变类型会对原本的值有影响,不可变的不会
函数参数的使用不需要使用指定顺序
可设置默认参数def printinfo( name, age = 35 ):

  • 不定长参数
def printinfo( arg1, *vartuple ): #*以元组形式传入
def functionname([formal_args,] **var_args_dict ):#**以字典形式传入
def f(a,b,*,c):#* 后的参数必须用关键字传入 c=3
  • 匿名函数
sum = lambda arg1, arg2: arg1 + arg2
sum( 10, 20 ) 

模块

import sys
sys.argv是命令行传入参数
xxx.py argv1 argv2 ···
import xxx可调用xxx内的函数 xxx.func
或from xxx import func ,可调用func

每个模块都有一个__name__属性,当其值是’main’时,表明该模块自身在运行,否则是被引入

dir(fibo)找到模块内定义的所有名称

目录包含一个叫做 __init__.py 的文件才会被认作是一个包

import sound.effects.echo 调用sound.effects.echo.echofilter()
from sound.effects import echo 可调用echo.echofilter()

输入输出

print

#还可以用%*.*s来表示精度,两个*的值分别在后面小括号的前两位数值指定  
print "string=%*.*s" % (7,2,string) 
str="sdf"
str.join( seq );
print("{} {}".format("hello", "world"))    # 不设置指定位置,按默认顺序
print("{1} {0} {1}".format("hello", "world") ) # 设置指定位置
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程",url="www.runoob.com"))
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的
#类
print('value 为: {0.value}'.format(my_value)) #my_value是class

类构造:def __init__(self): self.data = []

class JustCounter:
    __secretCount = 0  # 私有变量
    publicCount = 0    # 公开变量
    def __xxx(self):          # 私有方法

在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,self是该类

  • 类的专有方法:
    __init__ : 构造函数,在生成对象时调用
    __del__ : 析构函数,释放对象时使用
    __repr__ : 打印,转换
    __setitem__ : 按照索引赋值
    __getitem__: 按照索引获取值
    __len__: 获得长度
    __cmp__: 比较运算
    __call__: 函数调用
    __add__: 加运算
    __sub__: 减运算
    __mul__: 乘运算
    __truediv__: 除运算
    __mod__: 求余运算
    __pow__: 乘方

  • 运算符重载
    def __add__(self,other):

  • 子类初始化

class sun(father):
	def __init__(self,name,age):
		self.age=age
		super().__init__(name)#name是父类变量
super(Class[, self])
可以使用直接使用 super().xxx 代替 super(Class, self).xxx

静态方法

@staticmethod       #静态方法 类或实例均可调用 不传入self 或 cls不能访问类属性
def function(

结构语句

循环

for

for iterating_var in sequence:#iter为seq里的元素的值 遍历
   statements(s)

其他

异常处理

try:  
    ## 有错就匹配except 
except A:  
    ## 发生错A
except:  
    ## 其他错
else:  
    ## 没错
finally:  
    ##总是执行  
with ... as ...
	block

遍历

同时列出数据下标和数据

enumerate(sequence, [start=0])

进度条模块

pbar = tqdm(enumerate(test_loader))#pbar只是给tqdm()内的东西加上进度条

你可能感兴趣的:(code)