第二天的学习内容喵,请大大们检查~
2.1代码初尝试
python中输出功能为print(输出数据)
-
数据是数字,直接写print(10)
-
数字是文本,书写的时候加引号就可以输出,不区分单双引号print(‘hello world’)
2.2编码规范
2.2.1语句和缩进
语句:完成逻辑的表达式称为语句
在编程语言中习惯语句结束的时候使用分号标记[;]在Python中不建议写分号,建议一条语句独占一行 如果写代码的时候,一行中有多条语句,语句之间必须使用分号隔开
空格缩进:在Python中是体现代码块包含的意思【有些代码需要满足一定的条件才能执行(if语句),是需要被包含在一个条件内】,不能随便在开头增加空格缩进。
2.2.2注释
程序员为了更好的解读代码,给代码添加的标注,这个标准不被计算机当作程序识别,或一些代码功能暂时不被启动,需要将代码注释
注释分为两种
-
单行注释,#加空格
-
多行注释,格式三对引号包含,单双引号都可以,推荐使用三对双引号。
2.2.3print的使用
""" 项目名称: 02_print与注释.py 用户名: liuyanan 创建日期: 2023-9-20 flag标语:键盘敲烂 月薪过万!!!! """ # print的使用 按住ctrl键 点击功能名称 # print() # print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) """ 1.value, ..., 代表的是print可以一次性输出多个数据,书写的时候,数据之间使用逗号隔开 2.sep=' ' 代表的是print一次性输出多个数据展示结果时,数据之间的分隔符默认为空格 也可以进行修改, 为了避免print将设定的分割符识别成输出的数据,设置分割符的时候格式为 print(数据1, 数据2, 数据3, sep=分隔符) 3.end='\n' 代表的是print输出内容的结束符,这个结束符默认是换行 一个知识点: 转义符\,可以将某些特定的符号转变其他的含义 比如符号n 加上\就变成换行符 \n 符号t \t代表的是tab键 称为制表符 【四个空格】 符号u 转义符会把u后面的内容当做unicode编码 想去获取其对应的文字 4e00 ===> 一 因为end默认是换行 所以每个print打印的结果都是独占一行的 也可以对end进行修改 修改格式类似于sep print(数据1, 数据2, 数据3, sep=分隔符, end=结束符) 4.file=sys.stdout 代表的内容输出的目的地 默认是控制台上输出 5.flush 冲洗刷新的意思 """ print(10) print('hello world') print(10, 20, 30, 40) # 打印的时候 分隔符没有使用sep指定 会被识别成多个数据中的一个进行打印输出 print(10, 20, 30, 40, '+') # 10 20 30 40 + # 想要展示内容使用+分割 必须使用sep指定 print(10, 20, 30, 40, sep='+') # 10+20+30+40 # 转义符 print('and') # and print('a\nd') """ a d """ print('heath') # heath print('hea\th') # hea h print('\u4e00') # 一 # 报错 报错的原因是 把sers当做了unicode编码 但是sers没有对应的文字 # print('\Users') # 修改结束符 print(10, end='\t') print(20) # 10 20 # 演示把内容输出到文件中 """ 目的:要在一个文件中写内容 如果使用文件系统图形化界面的形式 向文件中写入内容 1. 按照路径找到文件 2. 打开文件 3. 进行书写 4. 保存关闭 """ # 如何使用Python代码按照路径打开文件 # open这个操作 # 格式: open(文件路径, 操作模式, encoding=文件存储编码形式) """ 文件路径: 可以是绝对路径,也可以是相对路径 绝对路径 从盘开始一直到具体的文件 相对路径:参照物 当前所在的路径使用.来表示 ..表示的是上一级路径 举例: 现在路径是C:\WorkContent\喵喵\喵喵python\day03_Python入门须知与运算符\代码\Day03 有一个路径 为 ./demo.py 这个文件就在现在的路径下 有一个路劲为 ../demo.py 这个文件在代码文件夹下 有一个路径为 ../../demo.py 这个文件在 day03_Python入门须知与运算符 这个文件夹下 有一个路径为 ../../笔记/demo.py 先回到 day03_Python入门须知与运算符这个文件夹 再进入到文件夹下的笔记文件夹中 有一个demo.py 操作模式 w -- write 代表的是写 如果路径对应的文件不存在 会先创建文件 再写入 如果文件存在,会清空文件 再写入 a -- append 代表的是写 如果路径对应的文件不存在 会先创建文件 再写入 如果文件存在,不会清空文件 在原本的基础上追加写 encoding 文件的编码形式 """ # open的操作就相当于是将Python程序与文件建立联系 print('hello file', file=open('./hello.txt', 'w', encoding='utf-8')) print('hello file', file=open('./hello1.txt', 'a', encoding='utf-8'))
2.4变量与数据类型
2.4.1变量
变量定义源于数学,和数学方程式里的变量是一样的,只不过在计算机里定义格式不一样,变量不仅仅是数字,还可以是其他格式的数据。
使用某个标记名,标记数据,这个标记名叫做变量名。
变量,从名字来进行判定,它标记的数据是可变化的,
在python中,定义变量的格式是 变量名 = 数据值,这里的变量名起名的时候要遵守一定的规则,这个规则来源于标识符
变量定义的其他格式:
-
同时定义多个变量名赋予相同的值 比如a =b =c = 10
-
同时定义多个变量但是值不相同[变量名1, 变量名2, 变量名= 值1, 值2, 值3] 比如a,b=10,20
注意:变量在使用之前一定要先定义并被初始化【赋予初始值】
2.4.2标识符
计算机中自定义的名字称为标识符,比如自定义项目名称/python文件名称/变量名/函数名/类名等等
规则:
-
包含数字 字母 下划线
字母:注意python的编码是UTF-8,是国际编码标准,收录的是世界语言在内的,这里的字母包括各国语言文字,换句话说各国语言文字统称为字母【英文、汉字等等】
虽然是各国语言都能定义,但还是建议使用英文字母
-
不能以数字开头
-
不能使用关键字与保留字
关键字:在python中已经具有特殊含义的单词
调取keyword
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
保留字:在python中已经被使用定义的名字【会根据定义覆盖原本的含义】
初次定义提示出来的就是保留字,就不要使用了,想用的话后面加个数字
不同内容的命名规范:
-
项目名称在满足标识符规则的基础上,定义的时候建议采用大驼峰【每个单词首字母大写】
-
python文件名称/变量名/函数名在满足标识符规则的基础上,定义的时候英文字母都是小写的,单词和单词之间用下划线隔开【比如max_value】
-
尽量做到见名知意
2.4.3数据类型
计算机中能处理的数据不仅仅只有数字,还可以处理文本/图形/音频/视频/网页等等各种各样的数据,再做处理的时候按照数据的特征进行了归类
在python在基本的数据类型有:
-
整型(int) 整数类型,该类型的数据值全部都是整数。Python可以处理任意大小的整数,包括负整数,写法与数学上的一样,比如10、-29等等
-
浮点型(float) 小数类型,之所以叫浮点类型,是因为数字可以使用科学计数法表示,小数点可以移动的,eg:1.23×10^9=1.23e9=12.3e8
整数运算精确,浮点的不精确
-
布尔类型(bool) 布尔值与布尔代数的表达形式是一样的,布尔值只有两个true和false,表达逻辑表达式运行的结果的
-
字符串类型(str) 表达的是文本数据,是由单引号或双引号包含起来的任意文本,
比如'hello world',
注意: '0'和0不是同一个内容,前者是一个字符串,文本,没法做算术运算;后者是一个数字,可以算术运算。
ASCII码中看到的字符0对应的十进制数据是48,这个是 '0',不是数字0。
在内存中存储的时候
'0'====>48====>11 0000 0===>0000000...(32个0)
字符串是一个有序的,不可变的容器型数据 • 字符串是有0个或者多个字符组合而成的,容器里面的数据元素就是字符 • 字符:长度为1的字符串就叫做字符, 当字符串是一对空引号称之为空字符串【容器中什么符号都没有】eg:'' 空字符串不等价于空值None 把容器理解成箱子 • 'abc'箱子中有数据a数据b数据c • ''一个空箱子 • None就是连箱子都没有
-
空类型(NoneType) 有一个值就是None,这个表示空值【可以理解成什么都没有,不能理解成0,0还是有意义的数字的】
tips:获取数据类型的方式print(type(数据名称))
python是属于动态类型的语言,变量的类型是由值来决定的,新值覆盖原来的值,再打印的时候看到的是新值的类型
静态类型的语言,特点是定义变量的时候必须指明变量类型,且赋值时只能赋予指明类型的值,比如Java
int age = 19;
python中整数可以是任意大小的,没有数据范围;在Java里最大的整型叫长整型,占据8个字节,如果没有复数,数据范围从0到2的64次方。print(2**64)
tips:数据太大时,定义的时候可以用下划线将数据分割,但是输出的时候不带下划线
定义的时候默认时十进制的数据
定义其他进制的数据加上进制标记就可以,eg: b=0b1001,打印的时候会自动转化成十进制数据
定义浮点型的可以用科学计数法eg:f1=3.4e10,输出的时候是展开的
2.4.4类型转换
在有些场景下需要把数据设置为相同类型的才能进行计算,这个就需要类型转换
-
把数据转化为整型,格式int(数据) 应用场景:1.浮点型取整,
2.将整数内容的字符串转化为整型
键盘输入两个数 获取两个数的差 input('提示语:'),input里输入的是str格式,
对input数据运算需要先转化成整型,再运算。不过input输入的必须是整数。
3.把其他进制的字符串转化为十进制的整数类型,要求:解读数据的时候,数据是几进制的就得按照几进制进行解读,
eg: result=int('0b101010101', base=2) print(result) ==>341 oct_data = input('请输入一个八进制数据:') ===>467 result = int(oct_data, base=8) print('转换为十进制的结果是:', result) ===>311
-
bin(整型数据),把整型数据转化为二进制的操作, 任何进制都可以,只能是整型数据,加上引号会报错
value = bin(0o713) print(value) ===>0b111001011
ps:将八进制数据转化为二进制数据,先用int把input的八进制数据(str)转化为十进制(int),然后再用bin转化成二进制。
-
oct(整型数据),把整型数据转化为八进制的操作
-
hex(整型数据),把整型数据转化为十六进制的操作
-
ord:获取字符对应的十进制数据,按照编码规则UTF-8(兼容ASCII码)
print(ord('a')) ===>97
-
chr:按照编码规则获取十进制对应的字符
print(chr(48)) ====>0
tips:# 注释的快捷键 :ctrl+/
practice 将小写字母转换为大写 a(97)--->A(65) 获取小写字母对应的十进制数据 减去32 再将结果转化为字符
-
把数据转化为浮点型,格式float(数据)
场景是,字符串格式的小数转化成浮点类型的
float的input既可以是小数也可以是整数,int必须是整数的
-
把数据转化为布尔类型,格式bool(数据)!!!! 可以把任何类型的数据转化为布尔类型,规则是:
-
数字格式的数据,非0即为true,bool(0)--->false
-
容器类型数据,非空容器即为true,bool('')--->false;bool(' ')--->true
-
None空值为false,bool(None)--->false
与后面的逻辑判断有关,将数据应用到逻辑判断中运用的就是这个规则
-
2.5运算符
分为一元、二元、三元运算符(python中没有三元)
一元是由一个数据参与运算,比如正负号 +78,-10,~19(按位取反)
二元是由两个数据参与运算,比如两个数据的加减
2.5.1算术运算符
加法 + 减法 - 乘法 * 除法 / 结果是浮点类型的 除不尽 商会有小数 // 结果是整型的 对商进行向下取整 小于等于(<=)商且最接近于商的整数 称为向下取整 取余数 % A除以B除不尽 会余下数据 这个余下的数据就是余数 11除以3得3余2 这个2就是余数 11 % 3 = 2 求幂数 ** 比如x**y,求x的y次方 y如果是正整数N 对x求幂数次方 y是1/N 小数格式 对x进行开方 x = 2 y = 3 x ** y = 2的3次方 = 8 x = 27 y = 1/3 x ** y = 27的三分之一次方 开方的时候结果是浮点型的 8**(1/2)
算术运算符的优先级别:** > -负号(有例子记得补上) > *、/、//、% > 加减
提高表达式的优先级使用小括号( )包含
print(-2 ** 2) # -4,先运算了**,再在前面加负号 print((-2) ** 2) # 4,括号()提高了优先级