Python编程从入门到实践看课笔记记录
先导篇
打印
#打印
print('')
#打印字符串中带'或者",在前面加\,即表示后面跟着的是字符
print('Let\'s go !')
#打印换行用\t
print('HELLO \tHI')
#多个换行内容打印,可以用三引号
print('''亲爱的祖国
我爱你!''')
变量
python3.0之后支持中文作为变量名,例如:
什么='123'
print(什么)
字符串
改变字母大小写以及如何输出一段带变量的字符
name='zhang Feng'
#首字符都大写
print(name.title())
#所有字符大写
print(name.upper())
#所有字符都小写
print(name.lower)
#删除开头的空格
print(name.lstrip())
#删除结尾的空格
print(name.rstrip())
#删除开头和结尾的空格
print(name.strip())
#删除特定的前缀
print(name.removeprefix('zha'))
#删除特定后缀
print(name.removesuffix('eng'))
#输出一段带变量的字符
zhaohu=f'Hello! {name}.'
print(zhaohu)
数
用于计算的库math
import math
print(math.exp(1))
print(math.log2(8))
注释
- 快速注释和快速取消注释 ctrl+/
- 三引号可以注释多行
- 写代码时可以用\换行
content=name+'新年'\
+'快乐!'
数据类型
- 字符串str
#取出字符串的第3个字符,从0开始计数
print('Hello!'[3])
- 布尔类型bool
只有True和False - 空值类型NoneType
只有一种None,表示完全没有值,例如当需要一个字符串,但还不知道值的时候,可以定义为
my_dog=None
- 对字符串求长度len()
print(len('Hello'))
- 返回数据的类型用type()
print(type(6.0))
列表及列表操作
- 创建列表用[],元素之间用,隔开
names=['Lusy','Mark','Jerry']
- 列表可以用len()获取长度,用索引找到对应元素
print(len(names))
print(names[0])
- 向列表更改和加元素、删除元素
#直接改变列表元素
names[0]='Jan'
#向列表末尾加元素
names.append('Hey')
#向列表的特定位置加元素,例如向第一个和第三个位置加元素
names.insert(0,'Anny')
names.insert(2,'Day')
#删除列表中特定元素
names.remove('Anny')
- 方法和函数的区别
#方法是 变量名.方法名()
names.append('Night')
#函数是 函数名(变量名)
len(names)
- 一些常用方法
nums=[1,12,0,-2,54]
#打印列表中的最大值和最小值
print(max(nums))
print(min(nums))
#打印排序好的列表
print(sorted(nums))
- 遍历整个列表
for 变量名 in 可迭代对象:
pizza_list=['A','B']
for pizza in piza_list:
print('我喜欢'+pizza)
- 创建数值列表
range(起始值,结束值,步长) 其中结束值不在列表内
逻辑运算
and or not
优先级not>and>or
字典
- 创建一个字典(键值对)
用{},key:value 不同键值对之间用,隔开
字典中元素需要是不可变的,故不能用列表,但有一个类似于列表的元组tuple,用()
contacts={('张伟',23):'12389082',
('张伟',42):'12379082',
('张伟',26):'12369082'}
print(contacts[('张伟',23)])
- 更新字典
#加入键值对
contacts[('李一',23)]='1232345'
#删除键及其对应的值,用del
del contacts[('李一',23)]
#获得字典长度
len(contacts)
#判断某个键值对是否在字典里,用in
print(('张伟',23) in contacts)
- 遍历字典
temperature_dict={'A':36.4,
'B':37.5,
'C':38}
#获取所有的键
temperature_dict.keys()
#获取所有的值
temperature_dict.values()
#获取所有的键值对,以元组的形式存储,例如('A',36.4)
temperature_dict.items()
for staff_id,temperature in temperature_dict.items():
if temperature >=38:
print(staff_id)
格式化字符串
- format方法
year='龙'
name='老刘'
#第一种
message_content='''
金{0}贺岁,欢乐祥瑞。
金{0}敲门,五福临门。
给{1}及家人们拜年啦!'''.format(year,name)
#第二种
message_content='''
金{current_year}贺岁,欢乐祥瑞。
金{current_year}敲门,五福临门。
给{receiver_name}及家人们拜年啦!'''.format(receiver_name=name,current_year=year)
- f字符串
year='龙'
name='老刘'
message_content=f'''
金{year}贺岁,欢乐祥瑞。
金{year}敲门,五福临门。
给{name}及家人们拜年啦!'''
print(message_content)
- {score:.2f}表示将score对应的值保留两位小数
函数input
input获得的默认是字符串形式
user_age=int(input('请输入你的年龄'))
转化为整型用int;浮点型float;字符串str
for循环和while循环的区别
for循环有明确的循环对象或次数;而while循环的循环次数未知
while 条件:
执行
代码的RAY原则
即don’t repeat yourself
函数
- 定义函数
def 函数名(变量):
return 变量值
面向对象编程 OOP
Object Oriented Programming
- 面向过程编程——C
即将某个任务拆分成一些具体的步骤,定义相应的函数去完成。 - 面向对象编程——Java
首先模拟对象及其具有的性质(属性:放在类里面的变量)和能做的事情(方法:放在类里面的函数),创建一个类。
类和对象的关系:类是创建对象的模板,对象是类的实例。 - 面向对象编程的三个性质(封装、继承、多态)
类
- 创建类
class CuteCat:
def __init__(self,cat_name,cat_age,cat_color):
self.name=cat_name
self.age=cat_age
self.color=cat_color
cat1=CuteCat('Jojo',2,'yellow')
print(f'小猫{cat1.name}的年龄是{cat1.age}岁,花色是{cat1.color}')
- 类的命名风格——Pascal命名法(例如UserAccount)
变量命名风格:下划线命名法(例如user_name) - 使用类和实例
class CuteCat:
def __init__(self,cat_name,cat_age,cat_color):
self.name=cat_name
self.age=cat_age
self.color=cat_color
def speak(self):
print('喵'*self.age)
def think(self,content):
print(f'小猫{self.name}在思考{content}...')-
cat1=CuteCat('Jojo',2,'yellow')
cat1.speak()
cat1.think('现在去抓沙发还是去撕纸箱')
- 继承
如果子类有__init__()就会优先调用子类的__init__()中的属性值,而不继承父类的,若要在父类的基础上增加子类的属性,则要在子类的__init__()下调用super().init(继承的父类的属性)
def __init__(self,name,sex,age):
super().__init__(name,sex)
self.age=age
文件
- 文件位置
分为绝对路径和相对路径,相对路径中.表示当前目录,…表示上级目录,再上级用…/…/./表示 - 读取文件
库pathlib
from pathlib import Path
path = Path('content.txt')
#read_text一次性读取文件内容,且以字符串形式返回
content = path.read_text()
#splitlines将字符串根据换行拆分成列表
lines = content.splitlines()
print(content)
print(lines)
- 写文件
write_text() 会新建文件,但若是原有文件则会先清空原有的文件内容
异常
- 捕捉异常
try:
可能出现异常的代码
except 想要捕捉的异常:
出现错误后执行错误
else:
无错误时执行的语句
finally:
无论是否发生错误都执行的语句
测试
- 测试函数
assert 后面接布尔表达式
库pytest
fixture装饰器
项目
外星人入侵
- python的坐标原点位于左上角
- 在python中以下划线开头命名的方法约定俗成为私密方法,即只能在该类使用,不能在其他类使用
- round()表示取整
数据可视化
python安装库用清华源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名
绘制折线图
绘制散点图
下载数据
-
csv是以逗号分隔的纯文本文件,读取文件如下
-
获取列表的索引及对应的内容
-
读取第一行
-
处理json文件,使其形式上更具有可读性
-
如何看zip的信息,将其转化为列表查看
-
结果展示:地震相关散点图