0%

Python

Python

print

print(“打印的文本内容”);没有引号就是变量

返回值为0,程序运行正常,打印字符串用+加号链接

\代表转义,\n换行

三个连在一起的单引号或双引号”””跨行内容”””

python的方次:表示,比如23的意思就是2的3次方

import就是导入函数库

import 库名 库名.函数名()

逐行解释翻译

//连续的两个除号表示除完向下取整 3/2=1.5 3//2=1

字符串*数字,表示重复输出多少次

type

查看数据类型

input

imput(“字符串”):输出给用户括号内的内容,并返回用户键入的内容

1
2
user_age = input("请输入您的年龄:") #用户输入20
交互界面弹出"请输入您的年龄:",user_age = 20

返回类型为字符串类型

强制类型转换

int():整数

str():字符串

float:浮点型

如果输入内容无法转换会报错

if语句 elif

1
2
3
4
5
6
if 条件:#不需要括号,空格和冒号之间的内容会被自动识别为条件
#语句前面的空格就代表是if语句的执行内容,删除前面的空格即可跳出
#只要前面有缩进,多个语句都可以
else:#直接跟冒号,不用空格
#为假时语句执行内容
else不可以独立于if存在
1
2
3
4
5
6
7
8
9
10
greed = int(input("本次考试成绩为:"))
if greed < 60:
print("不合格")
elif 60 <= greed < 70:
print("及格")
elif 70 <= greed < 90:
print("良好")
else:
print("good")
print(greed)

输入92,返回值为

image.png

多分枝嵌套if语句python通过缩进判断if的层级

逻辑运算

  • and 与
  • or 或
  • not 非 只能链接一个操作对象,更改布尔值,真改为假,假变为真

优先级:not->and->or

1
2
3
4
5
6
7
8
9
10
11
greed = int(input("本次考试成绩为:"))
if greed < 60:
print("不合格")
elif 60 <= greed < 70:
print("及格")
elif 70 <= greed < 90 and greed != 76:#不加括号是正确的用法,但是加上也可以跑
print("良好")
else:
print("good")
print(greed)

列表

空的列表用方括号表示shooping_list = ["内容1","内容2"]

列表是动态可变的,实时修改

可以存放不同数据

append方法,

在已有的列表内增加内容,一次只能加一个

1
2
3
shoop_list = ["键盘","鼠标","显卡"]
shoop_list.append("音响")
print(shoop_list)

image.png

upper方法

转化为大写,只是返回值为大写但是变量的内容仍旧是原来的样子

remove方法

删除元素内容,元素不存在则报错

1
2
3
4
shoop_list = ["键盘","鼠标","显卡"]
shoop_list.append("音响")
shoop_list.remove("鼠标")
print(shoop_list)

image.png

len函数

返回字符串长度

返回列表里元素的数量

1
2
3
4
5
shoop_list = ["键盘","鼠标","显卡"]
print(len(shoop_list))#返回值为3

message = "bahsgkjzhcuhckxz"
print(len(message))#返回值为16
  • max方法,返回最大值 根据ASCII码的大小
  • min方法,返回最小值
  • sorted方法,排序且不改变原来的列表

索引

1
2
3
4
5
6
shoop_list = ["键盘","鼠标","显卡"]
print(shoop_list[2])#输出为显卡

shoop_list = ["键盘","鼠标","显卡"]
shoop_list[2]="音响"
print(shoop_list[2])#输出为音响,可以直接利用索引变量覆盖

方法和函数

image.png

字典

用于储存键名和键值对,用花括号,键名是不可变的

1
2
3
4
5
shoop_list = {"键盘":"276","鼠标":"79","显卡":"392"}
print(shoop_list["显卡"])
# 输出为392

"键盘" in shoop_list#返回该字典是否存在该键名,返回值为真假

del

del 字典名[“键”]即可删除字典的键值对

键本身不存在则会报错

len

返回字典有多少键值对

len(字典名)

元组

可以放多个元素,用圆括号,不像列表,元组是不可变的,可以作为键在字典内存储

for循环

遍历对象可以是字符串,列表,字典,元组等

1
2
for i in mes:#for 变量名(随意) in 可遍历对象
#执行内容,依旧以前面的缩进判断是否为for的内容
1
2
3
字典名.keys() #所有键
字典名.values() #所有值
字典名.items() #所有键值对
1
2
3
4
5
wendu = {"01":36.6,"02":37.2,"03":36.3,"04":36.4,"05":37.9}

for people,tem in wendu.items():#把字典的键值赋值成元组,把键给第一个变量,值给第二个变量
if tem >= 37.2:
print(people)

执行结果image.png

rang

表示数列range(起始数值,结束数值),取值范围为[始,末),不包含末尾的数值,左闭又开

while

1
2
while 条件A:
行动B

适用于循环何时结束未知的情况

format方法

格式化字符串,不需要转化数字类型

替换文本中的关键字

<模板字符串>.format(<逗号分隔的参数>)

1
2
3
4
5
6
7
8
9
10
11
12
message = """
在{0}年,这个新的一年里
恭祝{1}先生,{0}年万事如意
新春快乐
""".format("2023","吕正国")
# message = """
# 在{year}年,这个新的一年里
# 恭祝{name}先生,{year}年万事如意
# 新春快乐
# """.format(year="2023",name="吕正国")

print(message)

message.format("2023","吕正国"),这样写是错的,要紧跟字符串

0123按照括号内的第几个参数进行替换,也可以直接使用变量名

也可以直接使用,实现效果

image.png

可以用于字典的键值对,当作一个元组,占用一个数组内容

image.png

:+输入格式,

f+字符串

1
2
3
4
5
6
7
year = "2023"
name = "吕正国"
message =f"""
{year}年,这个新的一年里
恭祝{name}先生,{year}年万事如意
新春快乐
"""

def

定义函数的关键字

1
2
def 函数名(参数1,参数2):
内容

定义函数时代码不会执行

直接写函数名就会调用该函数

模块

import语句

import + 库名(包括官方库和第三方库)

库名.方法名()

from…import…

1
from 库名 import 函数名1,函数名2

这个方法就不需要再带模块名

1
from 模块名 import * #容易产生命名冲突

引入所有的函数名,可以直接调用

在pycharm,ctrl+点击鼠标名,即可查看函数作用

类和对象

1
2
class 类名:
类的内容

init(self,变量名1,变量名2)构造函数

定义属性的方法

  • 带有两个下划线开头的函数是声明该属性为私有,不能在类地外部被使用或直接访问。
  • 又被称为构造器(constructor),方便我们对类的属性进行定义
  • init函数(方法)支持带参数的类的初始化 ,也可为声明该类的属性
  • init函数(方法)的第一个参数必须是 self(self为习惯用法,也可以用别的名字),后续参数则可 以自由指定,和定义函数没有任何区别。
1
2
3
4
5
6
7
8
9
class CuteCat:
def __init__(self,name):
self.name = name

cat = CuteCat("haha")

print(cat.name)

#输出为haha

定义方法

与正常步骤一样,但是方法的第一个参数被占用,用来表示自身

子类

1
2
class 子类名(父类名字):
内容

内容优先级:有限查看子类的函数名和方法名,逐层向外查找

super().__init__方法

在父类的基础上进行调用和修改

如果子类B和父类A,都写了init方法,那么A的init方法就会被B覆盖。想调用A的init方法需要用super去调用。

文件

在同一级可以直接用文件名找到另外的文件

open

1
open("文件的路径,绝对或相对","r只读\w写入\没有也行,默认为读取",encoding="编码方式 UTF-8,可选")

文件会记录读取的内容,下一次读取会在原基础上继续读取

read

1
2
3
4
flie = open("./data.txt")
print(file.read(1,35))#左闭右开
print(file.readline())#只读一行,根据换行符判断结尾
print(file.readlines()#返回全部文件内容组成的列表

close

file.close关闭文件,释放资源

with

1
2
with open("./data.txt") as file(文件对象名):
#对文件进行的操作

try

1
2
3
4
5
try:
#可能出错的代码
except 错误名字:
出现该错误后的操作

只有第一个报错的分支会运行

else

当try里面的语句没有任何错误时执行的语句

finally

无论错误出现与否,都会执行的语句

assert

判断代码是否正确,返回为true或false

一旦出现断言错误,后面的语句就不会在执行

unittest

单元测试库,对软件的最小可测试单元进行测试

需要用import语句引入

如果测试文件和源文件在同一目录下

1
2
import unittest
from 文件名 import 函数名\或类名

来源: https://www.yuque.com/guansuanbangzhuangganjun/oxmbxg/ibpzlmu43pogeabz
语雀文档ID: 138581109