第二章重点:
1.修改字符串大小写
name ='ada lobelace'
print(name.title())
title()方法:首字母大写
print(name.upper())
upper()方法:全部字母大写
print(name.title())
lower()方法:全部字母小写
2.添加制表符(tab):\t
3.添加换行符:\n
4.方法rstrip():剥除字符末尾的空白
lstrip():剥除字符开头的空白
strip():剥除字符两端的空白
5.变量名只含字母、数字、下划线,且只以字母或下划线开头
6.Python对于大小写敏感,如A和a是不同的变量
7.乘方运算符:**
8.浮点数:带小数点的数字
9.print的内容必须是字符串而不能是数字(运用str将数字转化为字符串)
10.如果想把一段代码括起来则用一对三个单引号 ’’’ 。 如:
‘’’
代码段
‘’‘’
第三章重点
1、在Python中,用方括号[ ]来表示列表,并用逗号来分隔其中的元素。
打印时会将方括号和内部的元素都打印出来。如果是字符串,则字符串上的引号也会被打印出来。(变量名 = [ ]表示为一个空列表)
2、访问列表元素:
代码:列表名[元素索引]
索引可用正负表示:
正:列表中第一个元素的索引为0,第二个元素的索引为1,以此类推……
负:列表中倒数第一个元素的索引为-1,倒数第二个索引的元素为-2,以此类推……
3、可利用访问列表元素的方法对指定元素的值进行修改。
4、方法append():将某一指定元素加入到原列表末尾:
代码:列表名.append(元素的值)
用途:创建动态列表
5、方法insert():可在列表的任意位置添加新元素
代码:列表名.insert(索引号,‘新元素的值’)
6、语句del:从列表中删除元素(PS:del是语句,不是方法!)
代码:del 列表名[元素索引]
前提:必须知道该元素在列表中的位置
注意:使用del语句从列表中删除的元素无法再次访问(即完全丢失)
7、方法pop():删除列表末尾的元素(实际上只是将该元素从列表中踢出)
代码:列表名.pop()
注意:被删除的元素仍然可以被继续访问。
访问方法:列表名.pop()
Example:
输入代码为:
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
运行结果为:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
Suzuki
8、方法pop(元素索引):踢出列表中指定位置的元素,具体方法同上。
9、方法remove():删除列表中指定值的元素(实际上只是将该元素从列表中踢出)
代码:列表名.remove(元素的值)
用途:可用来确定指定值的元素在列表的哪个位置,并将其删除。但仍然可以继续访问该元素
Example:
输入代码为:
motorcycles = ['honda','yamaha','suzuki','ducati']
print(motorcycles)
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print("\nA " + too_expensive.title() + " is too expensive for me.")
运行结果为:
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki'] ②
(因为有换行符\n,所以②③之间必须有个空行S) S
A Ducati is too expensive for me. ③
注意:remove只删除第一个指定值的元素
10、方法sort():对列表内的元素进行永久性升序排序(即不可恢复原排列顺序)
升序:从小到大(若对于字符串来说,则按字母顺序a~z进行排列)
逆序:即升序的相反顺序。
代码:列表名.sort(reverse=True)
注意:依然是永久性排序。
11、函数sorted():对列表的复本进行临时升序排序(即原列表依然存在并且可以访问)
代码:sorted(列表名)………………………………………………………即生成一个新列表
注意:若要进行临时逆序排序,则输入代码应为sorted(列表名,reverse=True)
12、方法reverse():倒着打印列表(即永久性反转原列表内元素的顺序)
代码:列表名.reverse()
注意:不是进行逆序排列!!!
13、函数len(): 获取列表长度(该列表含n个元素则长度为n)
代码:len(列表名)
14、方法vs函数vs语句:
(1)方法:一个对象的操作方法,经常用于操作自己,如:names.sort()
(2)函数:一个计算函数,用于处理一个对象,如,:sorted(names)
(3)语句:一行python语句, 如: del names[0]
第四章重点
1、当需要遍历列表的所有元素,并对列表中的每个元素都执行相同的操作时,可使用Python中的for循环。
代码:for 变量名 in 列表名:
注意:1、在某个语句中有缩进的代码表示该代码属于上述语句,若没有缩进则为并列关系,二者互不影响
2、for语句后面的冒号不可以忘记!!!
2、函数range():生成一系列数字
代码:①range(a,b) 即生成a~(b-1)的所有整数。
②range(n) 即生成从0开始的n个整数
3、函数list():①将range的结果转化为列表
代码:list(range())
②创建指定步长的数字列表
代码:list(range(a,b,步长值))
4、函数min():找到数字列表中最小值
函数max():找到数字列表中最大值
函数sum():对数字列表中各元素求和
5、列表解析:将for循环和创建元素的代码合并成一行,并自动附加新元素。
代码:列表名 = [表达式 for 变量名 in range(a,b)]
注意:该形式后面for无冒号
Example:
squares = [value**2 for value in range(1,11)]
print(squares)
6、切片:指列表的一部分
用途:取列表中连续的某一部分元素
代码:列表名[要取的第一个元素的索引:要取的最后一个元素的索引+1]
注意:①若从列表开头开始取,则代码可以为列表名[:要取的最后一个元素的索引+1]
②若取到列表末尾,则代码可以为列表名[要取的第一个元素的索引:]
③负数索引:若要直接取列表最后n个元素可使用负数索引
代码:列表名[-n:]
④若取整个列表,则代码可以为列表名[:]
7、复制列表:运用切片④
注意:是创造一个与原列表完全相同但与之无关的新列表
8、元组:不可变的列表(即不能修改其内部元素的值)
代码:()
注意:元组vs列表:
元组除了不能修改元素的值,其它基本都与列表相同,如依然可以利用索引访问其元素
第五章重点
1、==:表示判断双等号左右两边的值是否相等
=:赋值
!=:不等于
2、条件测试(又称布尔表达式):测试if语句为True 还是False。
若True 则执行if语句后的代码;反之则忽略这些代码或执行else语句。
3、检查多个条件:
and: 多个条件同时成立
or: 多个条件中只需一个条件成立即可
4、in:可检查指定值是否包含在列表中
代码:指定值 in 列表名
看输出结果为True 还是False
not in: 可检查指定值是否不包含在列表中。(具体同上)
5、elif语句:当检查的条件超过两个时用if-elif-else语句。
elif = else + if 即当上一个条件测试未通过而执行else语句时进入下一个条件测试。
6、若要检查多个条件,则每个条件测试所对应的if前的缩进应该相等。
7、判断列表是否为空:可用if语句
代码:if 列表名:
若列表不为空则条件测试为True,若列表为空则条件测试为False
第六章重点
1、字典形式:字典名 = {键:值,键:值,……}<末端的逗号不能忘记!!!>
2、访问字典中的值:字典名[键]
3、在字典中新增值:字典名[新键] = 新值
注意:键-值对的排列顺序与添加顺序无关。
4、修改字典中的值:字典名[原键] = 新值
5、删除键值对(永久删除):使用del语句
代码:del 字典名[键]
6、方法items():返回一个键值对列表
注意:键-值对的返回顺序与存储顺序不同
Example:
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0.items():
print("\nKey: " + key)
print("Value: " + value)
运行结果:
Key: username
Value: efermi
Key: last
Value: fermi
Key: first
Value: enrico
7、方法keys(): 可遍历字典中所有的键
8、获取字典元素时,顺序不可预测。
9、方法values():可遍历字典中所有的值
10、函数set():剔除重复项
11、嵌套的三种方式:字典中嵌套字典,列表中嵌套字典,字典中嵌套列表
①列表中嵌套字典:列表名 = [字典1名,字典2名,字典3名……]
用途:先创建一个空列表,再自动生成若干个字典存储于列表中
Example:
aliens = [ ]
for alien_number in range (0,30):
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens.append(new_alien)
②字典中嵌套列表:字典名 = {键:[元素],}
③字典中嵌套字典:字典名 = {键:{键:值,},}<不一定只嵌套一个字典,嵌套n个字典也以此类推
第七章重点
1、函数input():让用户输入一些文本(即字符串)使之存储在变量中
代码:变量名 = input(‘提示句:’)
注意:当提示有多行时用变量存储提示再赋给input
代码:变量1名 = ‘提示语1’
变量1名 += ‘提示语2’
变量2名 = input(变量1名)
2、运算符%:两个整数相除返回余数的值
运算符//:两个整数相除返回[x]
3、while vs for:for在开始循环时循环次数即确定
while只有当条件不成立时才会结束循环
4、退出循环的方法:①使用while语句。
Example:
prompt = "\nTell me something ,and I will repeat it back to you: "
prompt += "\nEnter 'quit' to end the program.\t"
message = ""
while message != 'quit':
message = input(prompt)
if message != 'quit':
print(message)
②使用旗标变量flag。
Example:
prompt = "\nTell me something ,and I will repeat it back to you: "
prompt += "\nEnter 'quit' to end the program.\t"
flag = True
while flag:
message = input(prompt)
if message == 'quit':
flag = False
else:
print(message)
③使用break语句:立即退出循环(适用于while和for)
5、continue语句:直接略过continue语句之后的语句,重新进入循环
6、Ctrl+C:结束陷入无限循环的程序
第八章重点
1、定义函数:
def 函数名(形参):
函数体(代码)……………………………………………………………即含形参的代码
函数名(实参)…………………………………………………………………即调用函数
注意:形参相当于x, 实参相当于令x= a(a为某一具体的数)
2、位置实参:实参所在的位置对应形参的位置,即:
def 函数名(x,y):
函数体
函数名(a,b)………………………………………………………………即x = a, y = b
3、关键字实参:在实参中写出“形参名 = 值”,即:
def 函数名(x,y):
函数体
函数名(y = b,x = a)…………………………………………………………即x = a, y = b
4、默认值:在一开始就将形参指定一个值,若人为不给该形参对应的实参赋值则系统将自动令该实参 = 默认值,若人为给该形参赋值则系统令该实参 = 给定值
注意:使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参。
5、 返回值return:函数处理一些数据之后得到的一个或一组新值
代码:def 函数名(形参):
变量1名 = 关于形参的表达式
return 变量1名
变量2名 = 函数名(实参)
对变量2进行操作
注意:调用返回值的函数时,需要提供一个变量,用于存储返回的值。
6、可选实参:运用if-else语句令实参成为可选的
7、函数可返回字典、列表等任意类型的值。
代码:return 字典名/列表名
8、传递列表:将列表传递给函数,该函数即可访问列表中所有元素的值
代码:函数名(列表名)
Example:
def greet_users(names):
'''向列表中的每位用户都发出简单的问候'''
for name in names:
msg = 'Hello, ' + name.title() + '!'
print(msg)
usernames = ['hanah','ty','margot']
greet_users(usernames)
9、向函数传递列表副本(即不对原列表进行操作)
代码:函数名(列表名[:])
10、形参名:该形参可接收任意多个实参,并将这些实参装进系统自动创建的空元组中
代码:def 函数名(形参):
函数体
函数名(实参1,实参2,实参3……)………………………………该函数可调用所有实参
注意:Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个带星号(*)的形参中。
11、**形参名:该形参可接收任意多个实参(键值对),并将这些实参装进系统自动创建的空字典中
代码:def 函数名(**形参):
函数体
函数名(键1 =‘ 值1’, 键2 = ’值2’, ……)
12、import语句:①导入整个模块,模块即拓展名为py的文件,包含要导入的全部代码
导入代码:import 模块名
调用代码:模块名.函数名(实参)
②导入模块中某个特定函数
导入代码:from 模块名 import 函数名
调用代码:函数名(实参)
③导入模块中所有函数
导入代码:from 模块名 import *
13、as:将某函数或模块重新命名
代码:①函数:from 模块名 import 函数原名 as 函数新名
②模块:import 模块原名 as 模块新名
注意:调用代码均采用模块/函数新名
14、递归法:一个函数不停的调用自身直至无法继续调用。
Example:(斐波那契数列)
def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n-1)+fib(n-2)
print(fib(12))
第九章重点
1、创建类:类中的每个对象都有某通性,并拥有其个性
代码:class 类别名():
def init(self,形参(属性)):
self.属性 = 属性
def 函数名(self):
函数体
注意:①self也是形参,并且必不可少且必须位于前面。它是一个指向实例本身的运用,会自动传递
②init中的下划线是每边各两条!!!
③init初始化一个实例的属性值,所有实例都必须被初始化
④第一个def为初始化方法,后面的def为方法,都可通过实例访问
⑤可创建多个实例
2、调用类:①对象名 = 类别名(属性值)………………………………调用初始化方法
②对象名.属性 即为 属性值…………………………………………………………访问该属性
③对象名.函数名()…………………在其所属的类别中查找该函数对应的方法并使用
3、给属性指定默认值:
代码:def__init__(self,属性1,属性2):
self.属性1 = 属性1
self.属性2 = 属性2
self.属性3 = 0
def 函数名(self):
关于属性3的函数体
对象名.函数名()
4、修改属性的值:①通过实例修改:
对象名.属性 = 属性新值
对象名.函数名()
②通过方法修改:
def 新函数(self,新属性):
self.旧属性 = 新属性
对象名.新函数(属性新值)
对象名.旧函数()
③通过方法对属性值进行递增:
Example:
class Car():
def init(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def read_odometer(self):
print('This car has'+str(self.odometer_reading)+' miles on it')
def update_odometer(self,mileage):
self.odometer_reading = mileage
def increment_odometer(self,miles):
self.odometer_reading += miles
my_used_car = Car('subaru','outback',2000)
my_used_car.update_odometer(23500)
my_used_car.read_odometer()
my_used_car.increment_odometer(100)
my_used_car.read_odometer()
5、继承:子类沿用父类的性质并拥有自己的个性
代码:父类体
class 子类名(父类名):
def init(self,子类属性):
super.init(子类属性)……………………返回该子类的父类的函数
对象名 = 子类名(子类属性)
操作(对象名.父类中某个函数())……………………子类继承父类中的方法
6、导入类:
代码:①from 模块名 import 类a、类b等……向现文件导入模块中的类a、b等
②import 模块名
对象名 = 模块名.类名(属性)………………向现文件导入并访问模块中的指定类
7、随机取值:原理:即从Python标准库中取相对应的类
代码:from random import randint
变量名 = randint(a,b)………………………………………………即取a~b中的随机整数
第十章重点
1、读取整个文件:在Python中打开某文件1并将其全部内容显示到Python界面上
代码:对象名 = open(文件1名)
变量名 = 对象名.read()
print(变量名)
对象名.close()
注意:①文件1名必须包含其后缀名
②读取完一个文件后必须使用close()函数将其关闭
2、关闭整个文件:
①使用函数close:
代码:对象名.close()
②使用with结构:Python在合适的时候自动将文件关闭
代码:变量名1 = ‘文件1名’
with open(变量名1) as 对象名:
变量名2 = 对象名.read()
操作(对变量2名进行操作)
3、逐行读取文件内容:使用for循环
代码:①变量名1 = ‘目录名\文件1名’
with open(变量名1) as 对象名:
for line in 对象名:
操作(对line的操作)
②变量名1 = ‘目录名\文件1名’
with open(变量名1) as 对象名:
lines = 对象名.readlines()
for line in lines:
操作(对line的操作)
注意:①with结构以外不能使用with中as后面跟着的对象名,但可以使用lines
②readlines()方法返回的是一个列表
4、将新文本写入打开的文件:
代码:变量名1 = ‘目录名\文件1名’
with open(变量名1,‘w’) as 对象名:
对象名.write(‘新文本’)
注意:①新文本内容必须是字符串
②若是读取文件则用‘r’, 代表参数的默认值
③若是读取+写入则用‘r+’
④若打开文件不存在则系统自动创建一个新文件
⑤若需要写入多行文本则必须在每行后面加入换行符\n
<即使把代码 对象名.write(‘新文本’) 写成两行系统也会自动合并成一行>
⑥写入的文本会覆盖打开的文件中的原有内容