Python学习笔记

偏向技术
/ 0 评论 / 297 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年04月01日,已超过1331天没有更新,若内容或图片失效,请留言反馈。

以下文档皆按python 3版本测试执行

常用知识

一定要注意缩进问题

python
# 查看版本信息
python
12

基本

数据类型

非同类型一起操作需要注意类型错误

字符串
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'
123456789101112131415
数字
整数
浮点数

需要注意的是,浮点数相加,结果不一定准确,比如0.1 + 0.2,得到的结果是0.30000000000000004

列表

[]来表示,比如names = ['Alan', 'Bob', 'Candy'],索引从0开始,并且支持负数,比如names[0]打印'Alan'names[-1]打印'Candy',以names为例:

  1. 在列表末尾添加元素:names.append('Dance') # ['Alan', 'Bob', 'Candy', 'Dance']
  2. 在列表中插入元素:names.insert(1, 'Baby') # ['Alan', 'Baby', 'Bob', 'Candy', 'Dance']
  3. 从列表中删除元素:del names[2] # ['Alan', 'Baby', 'Candy', 'Dance']
  4. 使用方法pop()删除元素:names.pop(),执行该语句,将会返回被删除的元素'Dance',打印names['Alan', 'Baby', 'Candy'],该方法也接受索引参数,比如names.pop(1),返回'Baby',打印names['Alan', 'Candy']
  5. 根据值删除元素:names.remove('Alan'),打印names['Candy'],该方法仅删除第一个对应值的元素
  6. sort():按字母顺序排序,接受一个参数reverse = True,与按字母顺序排序相反,影响原数组
  7. sorted():不影响原数组,与sort()结果一致
  8. reverse():反转列表排列顺序
  9. len():获取列表长度
列表操作
  1. 遍历整个列表

    python
    names = ['Alan', 'Bob', 'Candy']
    for name in names:
      print(name)
    
    # 输出结果如下
    Alan
    Bob
    Candy
    12345678
  2. 创建数字列表——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
    4
    123456789

    简单的方法有,

    1. min:寻找数字列表中的最小值
    2. max:寻找数字列表中的最大值
    3. sum:计算数字列表的总和
  3. 创建数字列表——列表解析

    python
    squares = [num**2 for num in range(1, 11)]
    print(squares)
    
    # 输出结果如下
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    12345
  4. 列表切片

    有一个列表names = ['charles', 'martina', 'michael', 'florence', 'eli'],我们只需要前面3个元素,可以这样 names[:3],结果为['charles', 'martina', 'michael'],如果是需要第2~4个元素,则是names[1:4],如果要选择后3个元素,则是names[2:],如果列表长度未知,可以使用负数选择,names[-3:]

  5. 列表复制

    有一个列表names = ['charles', 'martina', 'michael']

    我们使用backNames = names的方式复制的是列表的一个引用,比如,backNames.pop(),打印backNames['charles', 'martina'],打印names,结果和backNames一致,即变量namesbackNames所使用的是同一个列表。

    我们使用backNames = names[:]的方式复制,将会生成一个全新的列表

元组(tuple)

不可变的列表称为元组,比如我们定义一个矩形长宽不变的元组dimensions = (100, 50),长度为dimensions[0],当我们执行dimensions[0] = 200时会抛出一个错误,我们虽然不能修改元组内元素的值,但是可以给元组变量赋值,即dimensions = (200, 100)

布尔值

布尔值使用大写,TrueFalse

语句

python
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
  if car == 'bmw':
    print(car.upper())
  else:
    print(car.title())

# 输出结果如下
Audi
BMW
Subaru
Toyota
123456789101112

if语句有两种结构,if-elseif-elif-else多个条件判断,使用and表示并且,or表示或者,使用in来表示某值是否包含在某个列表中,使用not in来表示某值是否不包含在某个列表中

字典

字典是由一系列键值对组成,比如people = {'name': 'linka', 'age': 25},需要注意的是如果key没有用引号包起来,python将会将它视为一个变量,获取namepeople['name'],给字典添加一个值,people['sex'] = 'male',修改字典中的值,people['age'] = 26,删除字典中的值,del people['age'],通过keys()来遍历字典中的所有键,通过values()来遍历字典中的所有值,遍历字典如下:需要注意的是,遍历顺序不固定

python
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
123456789101112131415161718

用户输入和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),每当创建新实例时都会调用它

python
# 继承
class Car():
  def __init__(self, model):
    pass

class ElectricCar(Car):
  def __init__(self, model):
    super().__init__(model)
12345678

文件和异常

读文件

python
with open('XXX.txt') as file_object:
  contents = file_object.read()
  print(contents)
123

写文件

with open(<File_Path>, <Mode>)允许指定模式,读取模式:r,写入模式:w,附加模式:a,读取和写入模式:r+,默认是读取模式,附加模式是指,如果文件不存在,将新建,如果存在,将在末尾追加,而不会覆盖原有内容

python
with open('XXX.txt', 'w') as file_object:
  file_object.write('I love you')
12

异常

try-excepttray-except-elsetry中应只包含可能导致错误的代码,依赖try代码块成功执行的代码都应放在else代码块中。pass指明该块什么都不做

存储数据

python
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)
1234567891011
0

评论 (0)

取消