Day 2
1.注释
单行注释 #空格
‘’’
三队引号[英文格式下]单引号也可以 双引号也可以
多行注释
‘’’
“”"
注释的含义:
对代码进行解释和说明,目的就是让别人和自己能够看清晰的看懂代码的含义,提高代码的可读性
注释是不会被计算机识别的
一般写注释的时候 是写在代码的上方 或者右方
注释还有另外一个作用:修改代码的时候 可能代码需要进行调试 有部分代码用不到 没有必要删除 可以给注释掉
单行注释的快捷键 ctrl+/
去除掉注释也是 ctrl+/
2.行和缩进
3.标识符
标识符:标识某个实体的符号,使用这个符号可以代替实体参与相应的运算
在编程语言中,标识符一般就是给变量、项目名称、文件名称、函数名、类名等等自定义名称,
建立起名称和使用的数据之间的关系
自定义名称是要遵守一定的规则的:
-
标识符是由数字、字母、下划线组成的
-
标识符名称不能以数字开头
-
不能使用关键字与保留字
关键字:编程语言中具有特殊含义的单词
保留字:编程语言中已经使用的名称 不建议再使用[因为在使用的话 会覆盖掉原本的含义]
举例:
我想打印一个数据10
定义一个标识符 给它赋值为10
num=10
print(num)
我想打印一个10+20的和
print(10+20)
print(num+20)
定义的时候包含了其他的符号 就会报错
举例:
num@=10 报错
不能以数字开头
1-num=10 报错
python中的关键字有哪些
Python环境中自带了很多工具包 每个工具包都有对应的作用
比如time—包含时间相关的操作
要想使用工具包 需要导包
语法:import 工具包名
使用工具包下面的内容 工具包名.内容名
import time
打印当前时间 获取time工具包 当前时间的操作
print(time.localtime)
python中的关键字 被放在keyword的工具包
import keyword
获取所有关键字的操作
print(keyword.kwlist)
使用关键字定义名称
False=10 报错
不建议使用保留字
print在python中被使用了 具有输出的含义
print=10
print这个标识符 代表只是10 原本的输出含义就被覆盖了
print(10) 报错
怎么辨别是不是保留字:写单词的时候被提示出来的都是python中已经使用的了 就不再使用即可
4.变量与数据类型
变量:变化的数据 这种变化的数据在程序中来使用的时候 一般会给数据做一个标记 方便获取相关的数据信息 这个标记就成为变量名
举例:记录一天的气温
在程序中使用这个气温的时候 具体使用哪个数据 就不确定了
一般会被这个数据值 设置一个变量名 随着时间的推移 设置不同的数据值
当使用的时候直接使用这个标记名代替数据参与运算即可
早晨的温度
air-temp=24
中午
air-temp=30
print(ait-temp)
数据类型:把相同特征的数据进行归类 形成一类数据 这个成为数据类型
python中的数据类型
整数类型(整型int) 10 20 30
小数类型(浮点型float) 4.15 6.78
文本数据(字符串str) 字符串数据是需要使用引号包含的【不区分单双引号】
’hello‘ ‘千峰’ “Nice” “[空字符串]
逻辑结果(布尔类型bool) 逻辑结果只有两种 成立与不成立 布尔值只有两个 Ture 和False
空类型(NoneType ) 空值(None) 代表什么都没有 空字符串和None不是一个东西【空字符串理解成是空箱子 None连箱子都没有】
获取数据的类型 type(变量名)
类和对象
类:对具有相同属性和特征的数据的一个抽象描述
比如整数类型
对象:该类下实际存在的实体
比如 10
生活中举例:
电脑-----类[泛泛的称呼]
我的电脑----对象 学生---类
我----对象
定义一个 变量 记录人的名称[起名字尽量见名如意]
name=‘小千’
print(name)
定义一个变量 记录一个人的年龄
age=10
print(age)
print(type(age)) <class’int’> class 代表的就是类型
定义一个变量 记录性别
gender=‘女’
print(genger)
print(type(gender)) <class ‘str’>
记录一个状态值
flag=True
print(flag)
print(type(flag))<class ‘bool’>
空值
result=None
print(type(result)) <class ‘None Type’>
5.python中的输出
输出 按住ctrl键点击要查看的信息名称 就可以进入到python定义的源码文件
print(value,…, sep=’ ‘, end=’\n’, file=sys.stdout,flush=false)
value,...,代表print可以一次性输出多个数据,书写的时候 数据之间使用逗号分隔
sep=’ ’ 一次性输出多个数据时 展示的结果中数据之间的分隔符 默认时空格
end=‘\n’ 输出内容的结束符,print输出内容时 会在内容末尾追加一个结束符 默认时换行
字符串中特殊的符号[转义符]
可以将某些符号的含义 转变成其他的意思
n—\n 转换符
r—\r 回车 在windows系统下 储存数据的时候 \n 本质上储存的是\r\n
t—\t 制表符 就是tab键
u— 这个识别成unicode编码符号
file=sys.stdout
print数据输出的目的地,默认就是控制台
flush=False
是否快速的将通道中的数据输出到文件中
print(10, 20, 30, 40)
自己设置多个数据之间的分隔符
如果直接使用逗号分隔 代表的输出的多个数据 为了区分是数据还是分隔符,给分隔符赋值的时候 sep=指定的分隔符
print(10, 20, 30, 40, sep=‘+’)
演示转义符
print(‘and’)
print(‘a\nd’)
显示出来是
a
d
输出内容的时候 此时不需要换行 可以修改end的值
print(‘hello’, end=‘\t’)
print(‘world’)
更新内容的输出目的地
把内容输出到文件中
-
需要建立程序和文件之间的联系通道
有一个操作 open(文件路径,操作文件的模式,文件的编码形式)
以指定模式将文件与程序建立联系
操作文件的模式
r—read 只读 在程序中要读取文件的数据
w—write 只写 要将信息从程序中写入到文件中
文件如果不存在 会自动创建文件
文件存在 会清空文件内容 再把数据写入
a—append 只写 要将信息从程序中写入到文件中
文件不存在 会创建文件
文件存在 进行的是追加写的操作
文件的编码形式【不同的编码形式决定了文件中语言的类型】
编码:人为规定一种编译规则
在计算机存储数据的时候,存储格式是 二进制形式的
十进制数据 逢十进一 数字符号集 0 1 2 3 4 5 6 7 8 9
二进制数据 逢二进一 数字符号集 0 1
但是数据存储的时候 并不只有数字,还有汉字 英文 字母等等
十进制转化成二进制怎么转换的???
存储10 在计算机中是什么样子???
除以2取余数 知道商为0 将所有的余数倒序拼接起来
10/2=5-----0
5/2=2-------1
2/2=1-------0
1/2=0-------1
10=====>1010
汉字、英文字母等等不能直接转化为二进制,因此就出现了编码
计算机人为制造的,运算规则也是人为制造的
汉字或者英文字母在存储的时候 制定了什么规则??? 这个映射规则称为编码
将汉字或者英文字母 每一个对应着一个数字
例如
a===>97
一===>27361
常见的编码规则有:
ASCII码 — 只设置128个符号对应的数字 包括英文字母
GB2312— 国家编码标准 2312序列号
GBK— 国标扩展
Unicode---- 国际编码标准【收录是世界语言在内的】
python的编码就是unicode下UTF-8
-
通过通道把数据传递到文件中
handle=open( )
print( )
\u 每一个unicode编码值 都对应着一个文字
print(‘\u4e00’)运行是 一
路径c:\users\ …
怎么解决转义问题呢? 有些情况下 不需要转义符进行转义,保持转义符的本意
方式一:对转义符再次转义 \ \ 保持\本身的含义
print(‘\ \n’) 运行是 \n
方式二:使用r修饰字符串 字符串中每个符号都保持数据本身的含义
print(r’\n’)运行是\n
open(文件路径,操作文件的模式,文件的编码形式)
文件路径有两种格式:
-
绝对路径:
windows系统 从盘符开始 到 具体的文件路径 就是绝对路径
c:\WorkContent\
Mac系统 从根路径/开始到具体文件结束
/user/
-
相对路径[建议]
需要文件配置在项目路径下
相对路径是有参照物的:当前正在编辑的文件
相对路径中有两个特殊的符号:
.----- 当前操作的文件所在的文件夹
…----- 当前操作的文件所在的文件夹上一级
6.python中的输入
print 把数据输出到控制台
input 让用户在控制台输入数据 传递到程序中
格式:input(提示语)----会让程序暂停
如何让程序继续:在控制台上输入数据,结束输入的标记是回车
输入数据回车之后 就把控制台输入的数据传递到程序中 想要获取这个数据 需要接受
注意:输入的数据是变化的【也就是变量】想要获取变量的数据 需要给变量的值一个标记名【变量名】
将用户在控制台输入的数据 赋值给name这个变量名
name = input(‘请输入你的姓名:’)print(‘打印name的值’, name)
value = input(‘请输入一个内容:’)
print(type(value))7.类型转换
让用户输入两个数,求两个数的和
num1 = input(‘请输入第一个数:’)
num2 = input(‘请输入第二个数:’)
print(‘两个数据的和’, num1 + num2) # 两个数据的和 1728
为什么是这个结果???
input 不管用户输入的是什么格式的数据 在程序中拿到的都是字符串类型的
字符串数据之间进行相加 完成的是拼接的动作print(‘a’ + ‘b’) # ab
目的是求和,不是拼接
想要完成这个目的,num1和num2接受到数据类型得是整数类型的才可以,但是现在是字符串类型的
想让字符串格式的数值变成整数类型,就需要进行类型转换
操作语法【这个格式是固定的】
int(数据/变量名)value = ‘1673’
print(type(value)) # <class ‘str’>num = int(value)
print(type(num)) # <class ‘int’>注意事项: 把字符串格式的数值转化为整型时 数值的格式必须满足整数形态
int(‘3.14’)
ValueError: invalid literal for int() with base 10: ‘3.14’
不合法的数据
int(‘17a’)
ValueError: invalid literal for int() with base 10: ‘17a’
改进:如何改进才能达到需求
input输入一个数值 用int将其转换为整型 并赋值给num1
num1 = int(input(‘请输入第一个数:’))
num2 = int(input(‘请输入第二个数:’))
print(‘两个数据的和’, num1 + num2) # 两个数据的和 45把字符串数据转化成浮点型
float(数据/变量名)
注意:转换的时候要满足数字的形态 【可以是整数 也可以小数】data = ‘3.14’
res = float(data)
print(type(res)) # <class ‘float’>data = ‘10009’
res = float(data)
print(type(res)) # <class ‘float’>7.算术运算符
运算符:
算术运算符
一元运算符: 正负号 +17 -89
二元运算符
加法 +
减法 -
乘法 *
除法 / 和 //
取余 %
幂数 **
复合赋值运算符
比较运算符
逻辑运算符
成员运算符a = 17
b = 6
print(‘加法’, a + b)
print(‘减法’, a - b)
print(‘乘法’, a * b)
print(‘除法’, a / b) # 结果是浮点型的
print(‘向下整除’, a // b) # 有一个向下取整的操作: 结果是<=商 且最接近于商的整数
print(‘取余’, a % b) # 两数相除 获取余数
print(‘幂数x的y次方’, a ** b)加法 23
减法 11
乘法 102
除法 2.8333333333333335
向下整除 2
取余 5
幂数x的y次方 24137569print(2 ** 3)
print(8 ** (1/3))
-