这里写目录标题
- 重点
- 虚拟环境
- /与//的区别
- /
- //
- 关于print
- 字符串可以用+号拼接
- 单双引号
- 转义符
- 换行
- 三引号
- 变量
- 变量的定义
- 变量名的命名
- API库
- 导库以及使用
- 注释
- 单行注释
- 多行注释
- 数据类型
- str
- bool
- NoneType
- type函数
- 交互模式
- 介绍
- 开启
- input
- 作用
- 延伸
- if-else
- 条件嵌套语句
- 逻辑运算符
- 内容
- 优先级
- 列表
- 表示方法
- 方法和函数的区别
- 列表的一些方法
- 添加
- 移除
- 列表的一些函数
- 列表的独特点
- 列表可变
- 可以存放不同类型的数据
- 求列表元素的个数
- 列表索引
- 字典
- 定义方式以及用途
- 元组
- 定义
- 注意事项
- 字典的一些操作
- 添加一个新元素
- 查看一个键是否存在
- 删除一个键值对
- 查看一个字典有多少个键值对
- 实例
- 补充
- for循环
- 格式
- 迭代对象
- 实例1
- 实例2
- 实例3
- for结合range
- 介绍range
- while循环
- 格式化字符串
- format方法
- 0、1占位
- 变量名占位
- f-字符串
- 格式化数字
- 函数
- 定义格式
- 补充,sum函数
- 模块
- 官方内置函数文档
- 官方标准库模块函数文档
- 引用格式
- 引入方式
- 第三方模块
重点
虚拟环境
使用专业版pycharm,在创建项目时,会自动的创建成虚拟环境项目,这样的话,如果我们创建了多个项目,那么不同的项目之间,可以设置不同的仅独立于当前虚拟环境的python解释器以及第三方库
上图就是虚拟环境文件,我们编写python文件时,不要破坏那个venv文件以及他的文件结构与内容,即不要在venv文件夹内操作
/与//的区别
/
在python中,/就是除法,他会像数学运算那样,将结果算到底,但是对于无限小数来说,最多计算到16位,在第17位四舍五入至第16位
//
但是对于//,双斜线来说,他会像c++中的int整除一样,不保留小数位,如下图
关于print
字符串可以用+号拼接
单双引号
对于输出一个字符串,我们一般要用双引号进行括住,但是对于py,单引号与双引号的作用在大多数情况下是一致的,也就是对于引用一个字符串,单引号双引号都可以,
同时,单双引号的区别使用,可以帮助编译器区分,如下图,如果你想打印的内容包含双引号,那么就用单引号将其引起来
同理,如果你想打印的内容是单引号,那么就用双引号将其引起来
转义符
如果我们想要输出的内容中有单引号也有双引号,那么就要用转义字符反斜杠,将\放在要输出的每个引号前面,这样编译器就知道\后面的引号是要用来输出的,同理的还有+n,表示换行
换行
在py中,不能直接进行回车,这样会报错,因为py是读一行编译一行,这样的话py读不出来下一行的内容就编译当前行了,所以会报错,想要实现换行的效果,就要使用转义字符\,使用\n表示换行
三引号
假如说我们要打印一首诗,那么需要多行的换行操作,非常之麻烦
这里有个小tip,我们可以使用多个print,因为每个print默认带换行操作
但是还是有更简单的办法:
使用三引号,三对单引号或者三对双引号,这样的话,我们在编辑代码时的换行就起到了作用,能被编译器看到
变量
变量的定义
定义变量时,无需规定其类型,直接就是变量名=变量值,如下
变量名的命名
要注意的是,不要使用拼音,要使用英文单词,遇到不清楚的直接去查就好了
对于py而言 我们建议用下划线命名法,驼峰命名法不常用,但是对于c++,驼峰命名还是较为常用
其他要注意的是:
变量名是对大小写敏感的,大小写不同的变量名,他们是不同的
API库
导库以及使用
在代码的最上方导入math
之后可以用math去调用他所包含的方法,这种调用方式在c++上被称为静态对象可以直接使用类名调用成员函数
而至于这些库还有哪些其他内容,可以去官方文档查询
补充:
有了这个我们可以快速的计算平方以及开方,开方计算就是分数的次方,如下图,二分之一次方就是开平方
当然也可以使用math库的sqrt来开方
注释
单行注释
#号+空格 就是单行注释
多行注释
选中多行之后,使用ctrl + /,可以多行注释
或者三对引号也可以进行多行注释
数据类型
str
字符串类型,他有一个函数是len,用来返回字符串的字符长度,注意,转义字符整体占一个位置,且空格以及其他符号都会计入
bool
bool的True与False,要注意 在py中,True与False首字母都是大写
NoneType
该类型的值是None,他可以用于变量的初始化
type函数
该函数会返回变量的数据类型
交互模式
介绍
交互模式不常用,但是可以用于一些小测试
开启
打开交互模式:
可以看到三个箭头,表示进入了交互模式
或者cmd,输入python3
ctrl+d 退出
input
作用
input是用来读取用户输入的,并且他可以展示给用户一些提示信息,如上图所示,他的返回值就是用户的输入
但是返回值一律当成字符串来处理,所以可以进行字符串的拼接,但是字符串有时候需要转为整数进行操作,就有了如下延伸
延伸
int函数,将其他类型的字面是数字的数据转为整数,要注意的是,int是整形,会吞掉小数点
主要用于打印时,因为整数无法与字符串直接拼接进行打印,所以将其转为字符串进行打印即可
if-else
条件嵌套语句
对于多个elif语句,因为他是自上而下执行,所以,如果条件2、3同时满足,也只会执行条件二,所以,我们常用的是从第一个条件开始往下的条件是依次单调的,即按照一定的顺序进行排除选择的,这样会比较合理,如下图所示
范围是单调的,他的效果与下图等效
逻辑运算符
内容
not就相当于c++中的否,!
优先级
优先级由高到低依次是not and or
当然我们也可以使用括号来改变优先级
列表
表示方法
方法和函数的区别
方法是在类里面定义的成员方法,而函数则是独立的函数
列表的一些方法
添加
移除
列表的一些函数
列表的独特点
列表可变
关于可变和不可变 如下如所示,既是不可变的数据类型,也就是他在调用了某个方法之后,原变量不会受到影响,方法会返回一个全新的变量
但是关于可变,如下图,他在调用了自己的方法之后,他自己就发生了变化,不会生成全新的变量,他还是他,只不过是变化后的他
因此,无需对其重新继续赋值:
可以存放不同类型的数据
求列表元素的个数
列表索引
字典
定义方式以及用途
字典的主要特征是,他使用花括号进行定义
字典的用途是将一些键值对的键集合起来,而想要获取到一个字典中某个键的值,可以使用如下图所示方式
直接contacts[“键”],需要注意的是,键的类型必须是不可变的
所以说,列表无法作为键使用
补充:字典也属于可变行列
元组
定义
但是,假设我们有如下问题:
就是我们在定义字典的时候,需要两个元素形成键,但是列表又因为是可变的无法当做键,所以就出现了问题
这时我们可以用一个新的数据类型:元,他包含多个元素,且是不可变的,可以用作字典的键,他和列表的区别是他是用圆括号定义的
注意事项
由于元组不可变,所以添加和删除操作不能进行,但是虽然他不灵活,他却可以当做字典的键进行使用
字典的一些操作
添加一个新元素
如果想向字典中添加一个新元素,那么直接contacts[“新键”]=“新值”,如果字典中没有这个键,那么会做添加操作,如果字典中有这个键,那么会进行值覆盖操作
查看一个键是否存在
“键” in contacts,存在则返回True,否则返回False
删除一个键值对
查看一个字典有多少个键值对
len同样适用
实例
这里要注意一点:键值对都是字符串,所以定义或者添加的时候都要加上双引号,但是如果是从键盘获取的字符串,无需加双引号,因为他已经是个字符串了,py会自己加上双引号,实际上汉字加双引号是一个整体,称为字符串
所以可以看到,在通过键获取值的时候,query仍然不需要加引号,因为py自动加上了引号,使其称为字符串
补充
如果值是想设置为可运算的整数或者浮点数,那么无需加双引号,也就是不一定键值对一定是字符串
for循环
格式
迭代对象
对于字符串,会迭代每个字符(包括空格和逗号)
实例1
实例2
首先补充:对于字典有三个方法,分别是返回其所有的键、值、键值对
如果想对字典进行for循环,可以采取上面这种写法,因为当items用于for循环时,其每个元素会成为一个元组被返回出来,上面这种写法,就是将元组的第一个值赋值给第一个变量,第二个值赋值给第二个变量
当然,下面这种写法与上面是等价的,更为直观
tuple[0]、tuple[1]分别是元组的键和值
实例3
如果for循环in在单纯的一个字典上 那么是对其键进行的循环
for结合range
介绍range
range是一个整数序列,里面的两个值分别是起始值和终止值,注意的是左闭右开,如上图
他还可以规定步长,也就是每次加多少(如不作规定,默认为1),下图是步长为2的效果
while循环
老规矩,当我们不确定循环的次数时,使用while循环进行循环操作
注意要写条件递增或者递减,不然会进入死循环
格式化字符串
format方法
0、1占位
{0}、{1}分别代表format里面的两个参数,只要在这个字符串之前,对year和name赋值即可,无论是正常的赋值还是循环赋值都可以,只要他们有值,就会被替换到字符串内
变量名占位
当使用变量名进行格式化时,同样的,只要对format里面的name和year提前赋值即可
更为简便的方法是可以使用同样的名字,心里有区分即可
f-字符串
使用f方法,在字符串前加上f,之后也是变量名占位,这样的话无需写format,而是直接在此之前对year和name提前赋值
格式化数字
当然,如果格式化的内容是数字,同样可以办到,格式仍然是上面的0、1占位,然后format里面的参数提前赋值成数字,在占位符上可以对小数点进行规定,使用 冒号+点+几+f
这个是f-字符串的方式,在字符串前面加f,且占位符可以规定小数点,提前对name和gpa进行赋值
函数
定义格式
补充,sum函数
参数为一个列表,会返回求和出来的值
模块
官方内置函数文档
官方标准库模块函数文档
引用格式
其实就是引入官方的API库
引入方式
推荐第一种和第二种
第一种,就是很常见的,类似于c++中,静态类的引入调用,直接用类名去调用
第二种,就是引入库时,加上要引入的方法或者变量,这样在调用时就不用去用类名去调用了
第三方模块
这个网站可以对第三方库进行搜索
使用第三方库的话,在终端进行安装,安装指令是pip install+库的名字(由于电脑联网,直接进行命令安装,他会自动进行下载)