Python学习笔记(1)-基本概念
语法
- 在Python中严格区分大小写
- Python中的每一行就是一条语句,每条语句以换行结束
- Python中每一行语句不要过长(规范中建议每行不要超过80个字符)
- 一条语句可以分多行编写,多行编写时语句后边以\结尾
- Python是缩进严格的语言,所以在Python中不要随便写缩进
- Python中使用#来表示注释,#后的内容都属于注释,注释的内容会被解释器忽略,注释要求简单明了,一般习惯上#后边会跟着一个空格
变量
- Python中使用变量,不需要声明,直接为变量赋值即可,不能使用没有进行过赋值的变量
- Python是一个动态类型的语言,可以为变量赋任意类型的值,也可以任意修改变量的值
标识符
在Python中所有可以自主命名的内容都属于标识符,比如:变量名、函数名、类名等
标识符规范
- 标识符中可以含有字母、数字、_,但是不能使用数字开头
- 标识符不能是Python中的关键字和保留字,也不建议使用Python中的函数名作为标识符,因为这样会导致函数被覆盖
两种命名规范
- 下划线命名法,所有字母小写,单词之间使用_分割,xxx_yyy_zzz
- 帕斯卡命名法,首字母大写,每个单词开头字母大写,其余字母小写,XxxYyyZzz
数值
1.在Python数值分成了三种:整数、浮点数与复数
2.如果数字的长度过大,可以使用下划线作为分隔符:c = 123_456_789
3.10进制的数字不能以0开头二进制,0b开头,八进制,0o开头,十六进制,0x开头,其他进制的整数,只要是数字打印时一定是以十进制的形式显示的
4.在Python中所有的整数都是int类型,并且大小没有限制,可以是一个无限大的整数,对整数进行运算时,可以保证运算的精确
5.在Python中所有的小数都是float类型,对浮点数进行运算时,可能会得到一个不精确的结果
字符串
1.字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型,在Python中字符串需要使用引号引起来
2.引号可以是双引号,也可以是单引号,不能混着用
3.相同的引号之间不能嵌套
长字符串
- 单引号和双引号不能跨行使用
- 使用三重引号来表示一个长字符串 ''' """
- 三重引号可以换行,并且会保留字符串中的格式
转义字符
可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
- ' 表示'
- " 表示"
- \t 表示制表符
- \n 表示换行符
- \ 表示反斜杠
- \uxxxx 表示Unicode编码
格式化字符串
- 字符串之间也可以进行加法运算
- 如果将两个字符串进行相加,则会自动将两个字符串拼接为一个
- 字符串不能和其他的类型进行加法运算
- 在创建字符串时,可以在字符串中指定占位符
- %s 在字符串中表示任意字符
- %f 浮点数占位符
- %d 整数占位符
b = 'Hello %s'%'孙悟空'
b = 'hello %s 你好 %s'%('tom','孙悟空')
b = 'hello %3.5s'%'abcdefg' # %3.5s字符串的长度限制在3-5之间
b = 'hello %s'%123.456
b = 'hello %.2f'%123.456
b = 'hello %d'%123.95
5.格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串,在格式化字符串中可以直接嵌入变量
c = f'hello {a} {b}'
复制字符串
创建一个变量来保存你的名字
name = '孙悟空'
使用四种方式来输出,欢迎 xxx 光临
1.拼串
print('欢迎 '+name+' 光临!')
2.多个参数
print('欢迎',name,'光临!')
3.占位符
print('欢迎 %s 光临!'%name)
4.格式化字符串
print(f'欢迎 {name} 光临!')
字符串的复制(将字符串和数字相乘),如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回
布尔值与空值
布尔值
布尔值主要用来做逻辑判断
布尔值一共有两个 True 和 False
True表示真 False表示假
布尔值实际上也属于整型,True就相当于1,False就相当于0
空值(None)
None专门用来表示不存在
类型检查
通过类型检查,可以检查值(变量)的类型
type()用来检查值的类型,该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值
print(type(1)) # <class 'int'>
print(type(1.5)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type('hello')) # <class 'str'>
print(type(None)) # <class 'NoneType'>
类型转换
所谓的类型转换,将一个类型的对象转换为其他对象,类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象
int()
可以用来将其他的对象转换为整型
规则:
布尔值:True -> 1 False -> 0
浮点数:直接取整,省略小数点后的内容
字符串:合法的整数字符串,直接转换为对应的数字
如果不是一个合法的整数字符串,则报错,对于其他不可转换为整型的对象,直接抛出异常
float()
和int()基本一致,不同的是它会将对象转换为浮点数
str()
可以将对象转换为字符串
bool()
可以将对象转换为布尔值,任何对象都可以转换为布尔值
规则:对于所有表示空性的对象都会转换为False,其余的转换为True
表示空性:0 、 None 、 ''
运算符
运算符可以对一个值或多个值进行运算或各种操作
运算符的分类:
1.算术运算符
2.赋值运算符
3.比较运算符(关系运算符)
4.逻辑运算符
5.条件运算符(三元运算符)
算术运算符
1.加法运算符 +
2.减法运算符 -
3.乘法运算符 *
4.除法运算符,运算时结果总会返回一个浮点类型 /
5.整除,只会保留计算后的整数位,总会返回一个整型 //
6.幂运算,求一个值的几次幂 **
7.取模,求两个数相除的余数 %
赋值运算符
=可以将等号右侧的值赋值给等号左侧的变量
关系运算符
关系运算符用来比较两个值之间的关系,总会返回一个布尔值,如果关系成立,返回True,否则返回False
- 比较左侧值是否大于右侧值 >
- 比较左侧的值是否大于或等于右侧的值 >=
- 比较左侧值是否小于右侧值 <
- 比较左侧的值是否小于或等于右侧的值 <=
- 比较两个对象的值是否相等 ==
- 比较两个对象的值是否不相等 !=
- 相等和不等比较的是对象的值,而不是id
- is与is not比较两个对象是否是同一个对象,比较的是对象的id
- 对字符串进行比较时,实际上是逐位比较字符串的Unicode编码
逻辑运算符
逻辑运算符主要用来做一些逻辑判断
not 逻辑非
not可以对符号右侧的值进行非运算
对于布尔值,非运算会对其进行取反操作,True变False,False变True
对于非布尔值,非运算会先将其转换为布尔值,然后再取反
and 逻辑与
and可以对符号两侧的值进行与运算
只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
or 逻辑或
or可以对符号两侧的值进行或运算
或运算两个值中只要有一个True,就会返回True
与运算是找False的
Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值
True and print('你猜我出来吗') 第一个值是True,会看第二个值,所以print()会执行
False and print('你猜我出来吗')第一个值是False,不会看第二个值,所以print()不会执行
或运算是找True的
Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值
False or print('你猜我出来吗') 第一个值为False,继续看第二个,所以打印语句执行
True or print('你猜我出来吗') 第一个值为True,不看第二个,所以打印语句不执行
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
条件运算符(三元运算符)
语法:语句1 if 条件表达式 else 语句2
执行流程:
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
运算符的优先级
- 运算符的优先级可以根据优先级的表格来查询,在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算
- 如果优先级一样则自左向右计算,可以通过小括号来改变运算顺序
- 逻辑运算符可以连着使用
对象(object)
- Python是一门面向对象的语言
- 程序运行当中,所有的数据都是存储到内存当中然后再运行的,对象就是内存中专门用来存储指定数据的一块区域
- 对象实际上就是一个容器,专门用来存储数据,像我们之前学习的数值、字符串、布尔值、None都是对象
对象的结构
每个对象中都要保存三种数据
id(标识)
- id用来标识对象的唯一性,每一个对象都有唯一的id
- 对象的id就相当于人的身份证号一样
- 可以通过id()函数来查看对象的id
- id是由解析器生成的,在CPython中,id就是对象的内存地址
- 对象一旦创建,则它的id永远不能再改变
type(类型)
- 类型用来标识当前对象所属的类型,比如:int str float bool
- 类型决定了对象有哪些功能
- 通过type()函数来查看对象的类型
- Python是一门强类型的语言,对象一旦创建类型便不能修改
value(值)
- 值就是对象中存储的具体的数据
- 对于有些对象值是可以改变的
- 对象分成两大类,可变对象 不可变对象
- 可变对象的值可以改变
- 不可变对象的值不能改变,之前学习的对象都是不可变对象
变量和对象
- 对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名
- 变量中存储的不是对象的值,而是对象的id(内存地址),当我们使用变量时,实际上就是在通过对象id在查找对象
- 变量中保存的对象,只有在为变量重新赋值时才会改变
- 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量
-------------------------------------------
个性签名:君子藏器于身,待时而动
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!