1、单行注释:语句前用# 多行注释:段落前后各三个单引号或双引号
2、input(“-----”)用于输入,获得的所有数据默认是字符串格式。如果想输入数值,将input放入到int()中。
print("-------") 用于输出。 数值:比如:print("-----%d"%age) 字符串:比如:print("-----%s"%name)
3、标识符只能由由字母、下划线、数字组成,且数字不能开头。
4、字符串要用双引号!!!
5、print一次性输出多个变量时:
name = "---" age = 23 addr = "---"
print("姓名是%s,年龄是%d,地址是%s"%(name, age, addr))
6、在run中输入内容时,输入的内容与input的内容中间不能有空格,否则会运行不出来。
7、多个条件的判断:
if-----:
elif-------:
elif------:
elif-----:(或用else------将剩下的可能性都包括)
8、print出来的东西会自动换行,要想不换行,使用:print("**",end="") ;想强制换行时:print("")
9、print("----\t") : "\t"相当于一个table键(不是换行),达到对齐的效果
10、在程序的开头写上import:表示要导入一个功能。 比如:import random——表示要导入随机的功能
11、random.randint(0,5) : 表示随机导入0到5之间任意一个整数。
12、break:从现在开始结束所有循环; continue:从现在开始结束本次循环中continue后面的语句。
13、取字符串中的第一个元素:(假设字符串名称为name)name[0]
取字符串中的第二个元素:(假设字符串名称为name)name[1]
取字符串中的最后一个元素:(假设字符串名称为name)name[-1]
取字符串中的倒数第二个元素:(假设字符串名称为name)name[-2]
从第三个元素取到第六个元素:(假设字符串名称为name)name[2:6]
从第三个元素取到倒数第二个元素:(假设字符串名称为name)name[2:-1]
从第三个元素取到最后一个元素:(假设字符串名称为name)name[2:]
从第三个元素到倒数第二个元素,隔一个元素取一个:(假设字符串名称为name)name[2:-1:2] (最后一个2为步长)
从最后一个元素倒着取到第二个元素:(假设字符串名称为name)name[-1:0:-1]
从最后一个元素倒着取到第一个元素:(假设字符串名称为name)name[-1::-1] (或name[::-1])
14、字符串=["---","---","---"]:定义了一个列表(比如 name=[“老李”,“老刘”,“老张”])
列表添加:
name.append():在列表里新添加内容(只能添加到最后)
name.insert(位置,要新添加的内容)
name.extend(name3):将name3添加到name中
列表删除:
name.pop() :删除最后一个元素
name.remove("------"):删除在列表中的第一个该元素,后面有重复的不删
name[2:5]:切片出列表中3到4元素的列表
del name[下标]:删除第**个元素
列表修改:
name[下标]="---"
列表查找:
if "----" in name:
print("------")
if "----" not in name:
print("-----")
15、字典:
information = {键:值, 键:值,键:值,.........}
keys:[ 键 ] values:[ 值 ] items:[ 键:值 ]
16、for temp in name:(把name中的字符遍历一遍)
print(temp) :把name中的字符串都竖着列出来
17、字典的增删改查:
增加:*****[“新的key”] = value
删除:del *****["key"]
修改:*****["已存在的key"] = new_value
查找:**** .get("key")
18、列表: [ ] :可以增删改查
元组:( ) :不可以增删改
19、函数调用时,被调用的函数中最后一定要有return
20、global(用来对一个全局变量的声明) : 在函数定义中使用了global声明变量,那么这个变量不再是局部变量,而是全局变量。
21、定义全局变量一定要在调用函数之前,否则调用函数不能使用该全局变量。
22、函数文档说明:在定义函数中第一行写上 :”“” ********* “”“ 用来注释。这样在help(函数) 时可以看到函数的功能
23、缺省参数只能放在后面。比如有4个参数a,b,c,d其中b,c为缺省参数,则应该写成test(a,d,b=33,c=11)
24、形参中变量前加 *(*args) :不定长参数 (只能放到最后)
形参中变量前加 **(**kwargs) :不定长参数 ,用在输出的变量有名字,并且以字典的方式储存。
25、不可变的类型:数字、字符串、元组
可变的类型:列表、字典
26、sort() :从小到大排序
sort(reverse = True):从大到小排序
reverse():倒序排列
27、匿名函数:lambda
infors.sort(key = lambda x:x['****']) :对infors字典中关键词为****的进行排序
28、eval():可以将括号中的字符串的 “ ” 去掉。
29、open("文件名","r"):打开读文件
open("文件名","w"):打开写文件,一般用于创建新文件
*****.read() :读*****的文件
*****.write(***) :将***写入*****的文件中
注意:代码的最后一定要有关闭文件,即:*****.close()
30、*****.readline():每次只读新的一行
*****.readlines():将所有行都分别读出来
31、大文件读取:
while True:
content = *****.read(1024) //每次读1k的文件
if len(content==0):
break
*****.write(content)
*****.close()
32、class类的类名开头大写,后面加上(object)
类里 定义函数方法时一定要有参数
33、_init_方法:def _init_(self,参数,参数..........) :初始化对象
34、_str_方法:def _str_(self) :定义里面return什么,最后print出来什么
35、在方法前加两个下划线:该方法变成私有方法,不能直接用,而是在公有方法里先判断再调用
36、如果调用的是继承的父类中的公用方法,可以在这个公用方法中访问父类的私有属性和私有方法;但是如果在子类中实现一个公用方法,那么这个方法是不能调用继承的父类中的私有属性和私有方法
37、print(类名.__mro__)//前后各两个下划线:查看该类中的对象在调用方法时,在本类和其他类中的顺序
38、在类里面:
@classmethod
def *****(cls) :类方法
39、可以通过类的名字调用类方法,也可以这个类创造的对象调用类方法。
40、if *****:
数字0表示假,非0表示真
41、在程序得最后加上:
if __name__ =="__main__":
main()
42、浅拷贝:b = a a和b的地址相同
深拷贝:c = copy.deepcopy(a) a和c的地址不同
43、copy.copy():根据当前拷贝的数据类型是可变还是不可变 会有不同的处理方式,当数据是不可变时,此处的copy相当于浅拷贝。
44、num = property(getNum,setNum) :使用时不用再调函数,可以直接用num属性
45、__all__ = ["****"] : 此时在import 叉叉叉 from * 时,只导入****
46、判断是否可迭代:from collections import Interator
isinstance(要判断的对象,Interator)
47、iter(****) : 把****变成可迭代
48、闭包:在函数定义里再定义函数并调用