第二章变量与简单数据类型
1 变量名的命名和使用:mesage_1,不能1_mesage,无空格,不用关键字,函数名等
2 字符串可用单双引号
3 每个首字母大写name.title(),全大写函数upper(),字符串小写.lower(),(只是操作的时候改变大小写,不改变变量里的值)
合并字符串(拼接)+,
使用制表符\t或换行符\n来添加空白,暂时删除右侧空白(rstrip()),左侧(lstrip()),两端(strip()),
永久删除空白需要将删除结果保存在变量中(name = name.retrip()),
4 python直接返回结果,用俩乘号表示乘方,mesage = "Happy" + str(age) + "rd birthday!",3/2=1,3.0/2=1.5,
5 单句注释#,多行注释(有空查查)
第三章列表简介 列表bicycle=['trek','cannondale','redline'](内部标号和数组同)
1 访问bicycle[0],输出trek
2 修改bicyle[0]='ducati',末尾添加append(),列表插入bicyle.insert(0,'suzuki'),任意位置删除del bicyle[1],pop删除可将最右侧删除并弹出,弹出任意位置first=bicyle.pop(0),按值删除bicyle.remove(trek)(可将待删除值付到另一数组中,并用该数组删除,同时在数组中保存)
remove方法值删除第一个只定的值,如果有多个一样的,,就得多次删除
3 使用sort()对列表进行永久排序car.sort() ,反向 car.sort(reverse=True),临时排序sorted(cars) 排序列表未变,
4 获取列表长度len(),程序发生索引错误时,尝试将索引减一,再运行
第四章操作列表 遍历列表
循环magicians= ['alice','david','caralina']
for magician(变量) in magicians: #下一行循环第一行
print(magician) #python根据缩进判断代码行与前一行的关系
2 创建数值列表 range(1开始,到5为止没有5)1,2,3,4 even=list(range(2,11,2))从2开始到11为止(未到11)间隔为2,**表示乘方运算如square=value**2 (value的平方) ,max最大值min最小值sum总和
3 处理列表部分元素-切片:创建切片,索引同range [1:4]第2,3,4个 [:4]开头到第四个 [2:]第二个开始到最后 [-3:]最后三个
遍历切片,同上,复制列表[:]
4 元组 不可变(不能修改)的列表dimensions = (200,50),但可以存储元组的变量赋值
5 设置编码格式 1格式设置指南 2 缩进 (在程序中混合使用制表符和空格maybe a trouble) 3行长<=80,注释<=72 4空行
第五章if 条件 : 操作 else:操作 if中== >= <=两边都要有一个空格
1 ==是是否相等,相等返回True,python检查是否相等时区分大小写
2 !=是是否不等
3 and原来的且&&,or原来的或||
4 要判定特定的值是否(不)包含在列表中,可以使用关键字in(not in)
5 if elif (else)==原来的if else if else
6 if 数组名:判断是否空
第六章字典==键-值对
1 alien_0 = {'color':'green','point','5'} 访问值 --指定字典名和键如print(ali['color'])
有字符串和数字共同打印时,需要将值赋给新变量new_point = ali['point'],将整数换成字符串并打印print("you "+ str(new_point))
2 添加 -依次指定字典名,用方括号括起的键和值如ali['x_pos']=0
3 一般创建空字典,然后添加(大量数据存储时)
4 修改 同添加 删除del ali(字典名)[键名](永远删除)
5 xxx = { print打印同理
'':'',
'':'',#缩进四个
}
6 遍历字典 for key,value in xxx print("\nkey:" + key) print("value:" + value)(键下一行值,再键~)(声明两个变量)
遍历键for name in xxx.keys() (提取所有键并存到变量name中) print(name.)(keys方法在 不需要值时好用)(keys确定是否有某键值 )
遍历值for name in xxx.values() 剔除重复项set for name in set(xxx.values())
7 嵌套
第七章用户输入和while循环
1 函数input()让程序暂停运行,等待用户输入一些文本,获取用户输入,(自动)将其存储在一个变量。函数input()接受一个参数,即要向用户显示的提示或说明 name = input("please enter your name:") 输出please enter your name:Eric (如果是数字输入的话是字符)
print ("hello, " + name + "!") Hello,Eric!
2 age = input("how old are you ") age = int(age) 可以打印18了
3 求模运算符(%)(处理数据信息时)将两个数相除并返回余数
4 while和这里while相同,也可以定义一个退出值,只要用户的输入的不是这个值,此程序就接着运行
5 可定义一个变量(标志),用于判断整个程序是否处于活动状态,为true则继续运行,false则停止运行 active = True while active: if active = False,,, 或者用break不执行下面语句,退出整个循环,continue忽略余下代码,返回循环开头
6 通过while循环同列表和字典结合起来使用,可搜集,存储并组织大量输入,供以后查看和显示
a 列表间移动元素
b 列表间删除元素
c 使用用户输入来填充字典
第八章函数
1 定义函数 def 函数名(函数需要信息): 例 def greet_user():
函数体(前可以有注释) """显示简单问候语""" \nprint("Hello")
在哪需要在哪调用 greet_user()
2 象函数传递信息 那个括号加,,, 形参 定义时的那个括号里的函数信息参数,,,实参 调用时括号里的函数信息参数
3 传递实参 a位置实参(实参顺序和形参相同)每个实参关联一个形参的基于实参的顺序的关联方式
b关键值实参(实参=变量名+值/列表、字典)传递给函数的名称-值对,实参中将名称和值关联起来,无需注意顺序
4形参指定默认值,函数调用时有实参用实参无实参用形参默认(可省略)。
5, 实参可选,也可返回列表,字典等复杂数据结构.def build_p (first_name, last_name): person = {'first': first_name, 'last':last_name} return person musician = build_p('jimi', 'hendrix') print(musician)
6 传递任意数量的实参 (预先不知多少实参)def make(*toppings)形参名*toppings的*创建叫toppings的空元组,并将收到的所有值都封到装到这里
7 结合使用位置实参和任意数量实参,在函数定义中将接纳任意数量实参的形参放在最后,即有*的
第九章类 面向对象的编程
1 方法:类中函数 _init_():[需要定义形参self,每个与类相关的方法调用都自动传递实参self,是指向实例本身的引用,让实例能访问类的属性和方法] 特殊方法,创建实例时,自动传入实参self。以self为前缀的变量可以供类所有方法使用 self.name=name
2 属性 可以通过实例访问的变量,用.访问,用.调用方法
3 类中每个属性必须有初始值
4 修改属性的值 a直接修改 b通过方法修改属性的值 c通过方法对属性的值进行递增
5 继承 :子类继承父类 子类的方法_init_(),创建子类实例时,给父类的所有属性赋值class Car(): def _init_(self,make,model,year): self.make = make ... class ElectricCar(Car父类名): def _init_(self,make,model,year): super()._init_(make,model,year)
6 重写 和父类名相同
7 导入类 将Car类村存在一个名为car.py的文件 from car import Car
类Battery和ElectricCar 存到car.py的文件 from car import ElectricCar
一个程序内导入Car类和ElectricCar类 from car import Car , ElectricCar
导入整个模块 import car 导入模块中的每个类 from module_name import * (不推荐)从一个模块中导入很多类,导入整个模块 ,使用module_name.class_name语法来访问类
第十章 文件与异常
1 读取整个文件 函数open()参数是要打开的文件的名称,返回一个表示文件的对象,用变量存储该对象
2 文件路径 一般使用相对路径且使用反斜杠\而不是斜杠/,相对路径不行时用绝对路径需要存在一个变量中
3 逐行读取 filename = 'pi_30.txt'
with open(filename) as file_object: #with是关闭
lines = file_object.readlines() #将文件中的每一行读取并放到列表中
pi_string = '' #用变量存放
for line in lines:
pi_string += line.strip() #取消空格换行符
print (pi_string) print(len(pi_string))
4写入文件 filename = 'programming.txt'
with open(filename, 'w') as file_object: #打开文件时,指定 读取'r',写入'w',附加'a',读取和写入'r+' 没有则默认只读
file_object.write("I ")
5 附加模式 用其打开文件时,不会在返回文件对象前清空文件,写入到文件的行都将添加到文件末尾
6 异常 ZeroDivisionError异常 5/0 try -except代码块处理可能发生的 try: print(5/0) except Ze : print()
FileNotFoundError异常 找不到文件
7存储 json.dump() 先导入模块json(import json),创建一个数字列表,数据为JSON格式,写入模式打开,用函数json.dump()将数字列表存入numbers.json
import json \ numbers = [] \ filename = 'numbers.json' \with open(filename, 'w') as f_obj: json.dump(numbers, f_obj)
json.load()
8重构 将好用的代码分为具体工作的函数