以下文档皆按python 3版本测试执行
常用知识
一定要注意缩进问题
# 查看版本信息
python
基本
数据类型
非同类型一起操作需要注意类型错误
字符串
name = 'aa bb'
# 首字母大写
name.title() # 'Aa Bb'
# 大写
name.upper() # 'AA BB'
# 小写
name.lower() # 'aa bb'
message = ' test '
# 清除所有空格
message.strip() # 'test '
# 清除左边空格
message.lstrip() # 'test '
# 清除右边空格
message.rstrip() # ' test'
数字
整数
浮点数
需要注意的是,浮点数相加,结果不一定准确,比如0.1 + 0.2,得到的结果是0.30000000000000004
列表
用[]来表示,比如names = ['Alan', 'Bob', 'Candy'],索引从0开始,并且支持负数,比如names[0]打印'Alan',names[-1]打印'Candy',以names为例:
- 在列表末尾添加元素:
names.append('Dance')# ['Alan', 'Bob', 'Candy', 'Dance'] - 在列表中插入元素:
names.insert(1, 'Baby')# ['Alan', 'Baby', 'Bob', 'Candy', 'Dance'] - 从列表中删除元素:
del names[2]# ['Alan', 'Baby', 'Candy', 'Dance'] - 使用方法pop()删除元素:
names.pop(),执行该语句,将会返回被删除的元素'Dance',打印names为['Alan', 'Baby', 'Candy'],该方法也接受索引参数,比如names.pop(1),返回'Baby',打印names为['Alan', 'Candy'] - 根据值删除元素:
names.remove('Alan'),打印names为['Candy'],该方法仅删除第一个对应值的元素 - sort()
:按字母顺序排序,接受一个参数reverse = True,与按字母顺序排序相反,影响原数组 sorted():不影响原数组,与sort()结果一致reverse():反转列表排列顺序len():获取列表长度
列表操作
-
遍历整个列表
pythonnames = ['Alan', 'Bob', 'Candy'] for name in names: print(name) # 输出结果如下 Alan Bob Candy12345678 -
创建数字列表——range
range方法,并不能直接赋值给变量,比如
numbers = range(2, 6),打印numbers显示range(2, 6),我们需要使用list()方法创建列表,numbers = list(range(2, 6)),打印numbers显示[2, 3, 4, 5]python# 含头不含尾 for num in range(1, 5): print(num) # 输出如下 1 2 3 4123456789简单的方法有,
min:寻找数字列表中的最小值max:寻找数字列表中的最大值sum:计算数字列表的总和
-
创建数字列表——列表解析
pythonsquares = [num**2 for num in range(1, 11)] print(squares) # 输出结果如下 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]12345 -
列表切片
有一个列表
names = ['charles', 'martina', 'michael', 'florence', 'eli'],我们只需要前面3个元素,可以这样names[:3],结果为['charles', 'martina', 'michael'],如果是需要第2~4个元素,则是names[1:4],如果要选择后3个元素,则是names[2:],如果列表长度未知,可以使用负数选择,names[-3:] -
列表复制
有一个列表
names = ['charles', 'martina', 'michael']我们使用
backNames = names的方式复制的是列表的一个引用,比如,backNames.pop(),打印backNames为['charles', 'martina'],打印names,结果和backNames一致,即变量names和backNames所使用的是同一个列表。我们使用
backNames = names[:]的方式复制,将会生成一个全新的列表
元组(tuple)
不可变的列表称为元组,比如我们定义一个矩形长宽不变的元组dimensions = (100, 50),长度为dimensions[0],当我们执行dimensions[0] = 200时会抛出一个错误,我们虽然不能修改元组内元素的值,但是可以给元组变量赋值,即dimensions = (200, 100)
布尔值
布尔值使用大写,True或False
语句
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
# 输出结果如下
Audi
BMW
Subaru
Toyota
if语句有两种结构,if-else,if-elif-else多个条件判断,使用and表示并且,or表示或者,使用in来表示某值是否包含在某个列表中,使用not in来表示某值是否不包含在某个列表中
字典
字典是由一系列键值对组成,比如people = {'name': 'linka', 'age': 25},需要注意的是如果key没有用引号包起来,python将会将它视为一个变量,获取name是people['name'],给字典添加一个值,people['sex'] = 'male',修改字典中的值,people['age'] = 26,删除字典中的值,del people['age'],通过keys()来遍历字典中的所有键,通过values()来遍历字典中的所有值,遍历字典如下:需要注意的是,遍历顺序不固定
people = {'name': 'linka', 'age': 25, 'sex': 'male'}
for key, value in people.items():
print('key is', key)
# 此处如果使用print('value is ' + value),将会在age时报错,因为类型不同,不能进行操作
# 可以将value转为字符串,print('value is ' + str(value))
print('value is', value)
print(' ')
# 输出结果如下
key is name
value is linka
key is age
value is 25
key is sex
value is male
用户输入和while循环
input()方法可接收用户输入,注意,用户输入的全是字符串类型,int()转成整数,float()转成浮点数,str()转成字符串,while循环中使用break退出循环,continue是跳过本次循环
函数
传递任意数量的参数时使用*Args,类型为元组,传递任意数量的关键字实参使用**Args,类型为字典
引入模块,import <Module_Name>或者from <Module_Name> import <Function_1>, <Function_2>
使用Function别名from <Module_Name> import <Function> as <Alias_Name>
使用Module别名import <Module_Name> as <Alias_Module_Name>
类
类中有一个特殊方法,__init__(self),每当创建新实例时都会调用它
# 继承
class Car():
def __init__(self, model):
pass
class ElectricCar(Car):
def __init__(self, model):
super().__init__(model)
文件和异常
读文件
with open('XXX.txt') as file_object:
contents = file_object.read()
print(contents)
写文件
with open(<File_Path>, <Mode>)允许指定模式,读取模式:r,写入模式:w,附加模式:a,读取和写入模式:r+,默认是读取模式,附加模式是指,如果文件不存在,将新建,如果存在,将在末尾追加,而不会覆盖原有内容
with open('XXX.txt', 'w') as file_object:
file_object.write('I love you')
异常
try-except,tray-except-else,try中应只包含可能导致错误的代码,依赖try代码块成功执行的代码都应放在else代码块中。pass指明该块什么都不做
存储数据
import python
numbers = [2, 3, 5, 7, 11, 13]
filename = 'XXX.json'
with open(filename, 'w') as file_object:
json.dump(numbers, file_object)
with open(filename) as file_object:
nums = json.load(file_object)
print(nums)
评论 (0)