Python入门(4)语法、变量和标识符、数据类型、字符串、布尔值、类型检查、对象、类型转换、运算符
Python入门(4)
目录
- Python入门(4)
- 一、几个基本概念
- 1、表达式
- 2、语句
- 3、程序(program)
- 4、函数(function)
- 4.1 函数的分类
- 内置函数:
- 自定义函数
- 4.2函数的两个要素
- 参数
- 返回值
- 二、基本语法
- 三、变量和标识符
- 1、变量
- 2、标识符
- 规范
- 四、数据类型
- 1、整数
- 2、浮点数
- 五、字符串
- 1、概念
- 2、长字符串
- 3、转义字符
- 4、格式化字符串
- 拼串
- 多个参数
- 占位符
- 格式化字符串(format)
- 5、字符串复制(将字符串和数字相乘)
- 六、布尔值(bool)和空值(None)
- 布尔值
- 空值
- 七、类型检查(type函数)
- 八、对象(object)
- 1、介绍
- 2、结构
- id--标识
- type--类型
- value--值
- 3、变量和对象
- 九、类型转换
- 1、int()
- 规则
- 2、float()
- 3、str()
- 规则
- 4、bool()
- 规则
- 十、运算符(操作符)
- 1、算术运算符
- 2、赋值运算符
- 3、关系运算符(比较运算符)
- 4、逻辑运算符
- 5、非布尔值的逻辑运算符
- 6、条件运算符(三元运算符)
- 7、运算符的优先级
一、几个基本概念
1、表达式
类似于数学公式,仅用于计算结果,不会对程序产生实质性影响
2、语句
在程序中语句一般需要完成某种功能,比如打印信息,获取信息,为变量赋值等。
语句的执行一般会对程序产生一定影响。
在交互模式中不一定会输出语句的执行结果
3、程序(program)
程序由语句和表达式构成。
4、函数(function)
函数就是一种语句,用来完成特定的功能。
4.1 函数的分类
内置函数:
由python解释器提供的函数,可以在python中直接使用
自定义函数
由程序员自主创建的函数
当需要完成某个功能时,可以调用内置函数
4.2函数的两个要素
参数
()中的内容就是函数的参数
函数中可以没有参数,也可以有多个参数,多个参数之间用`,`隔开
返回值
返回值是函数的返回结果,不是所有的函数都有返回值
二、基本语法
1、python中严格区分大小写
2、每一行都是一条语句,每条语句以换行结束
3、每一行语句不要过长,建议每一行不要超过80个字符
4、一条语句可以分多行编写,语句后边以\结尾
5、缩进严格
6、使用#
来表示注释,一般#后会加一个空格,快捷键ctrl+/
三、变量和标识符
1、变量
pyhton中使用变量不需要声明,直接为变量赋值
不能使用没有进行赋值的变量
python是动态类型的语言,可以为变量赋任意类型的值,也可以任意修改变量的值
2、标识符
所有可以自主命名的都属于标识符,比如变量名、函数名、类名等
规范
1.标识符中可以含有字母、数字、_(下划线),但是不能使用数字开头
2.标识符不能是python中的关键字和保留字,也不建议使用函数名作为标识符
3.命名规范
下划线命名法:
所有字母小写,单词之间使用_
分割
帕斯卡命名法(大驼峰):
首字母大写,每个单词开头字母大写,其余字母小写
四、数据类型
数据类型就是变量的值的类型。
数值分为:整数,浮点数(小数),复数
1、整数
所有整数都是int类型
整数的大小没有限制,可以无限大
如果数字长度过大,可以使用_
做分隔符
10进制的数字不能以0开头
其他进制的整数,数字打印时的形式一定是十进制:
二进制 0b开头
八进制 0o开头
十六进制 0x开头
可以通过运算符对数字进行运算,并且可以保证整数运算的精确
2、浮点数
所有小数都是float类型
对浮点数进行运算时,可能会得到不太精确的结果
五、字符串
1、概念
字符串用来表示一段文本信息,时程序中使用最多的数据类型
字符串需要使用引号“”引起来,不使用就不是字符串
引号可以是单引号,也可以是双引号,但不能混用
相同的引号之间不能嵌套
单引号和双引号不能跨行使用,可以使用\换行,但打印时不保留跨行格式
2、长字符串
使用三重引号来表示一个长字符串'''
、 """
三重引号可以换行,并且保留字符串中的跨行格式
'''abd
abd
abf'''
3、转义字符
使用\
作为转义字符
s = "曰:\"你好\""
’ ----- ’
" ----- "
\t ----- 制表符即tab
\n ----- 换行符
\ ----- 反斜杠(两个\输出一个\)
\uxxxx ----- unicode编码
s = '\u0040'
4、格式化字符串
以此为例:
name = lee
拼串
字符串之间可以进行加法
两个字符串相加,会拼接成一个
字符串只能和字符串拼接,不能和其他类型进行加法运算
print('欢迎 ' + name + ' 光临') ##注意空格
多个参数
print('欢迎', name ,'光临')
占位符
在创建字符串时,可以在字符串中指定占位符
%s
在字符串中表示任意字符
%d
----- 整数占位符
%f
------ 浮点数占位符
a = 'hello %s 你好 %s' % ('tom','孙悟空')
b = 'hello%3s' % 'ab' #指定长度时,字符串不够使用空格补齐
c = 'hello%3s' % 'abcdef'
d = 'hello%3.5s' % 'abcdefg' #最少三个,最多五个
print('欢迎 %s 光临' %name)
格式化字符串(format)
格式化字符串,可以通多在字符串前加一个f
来创建一个格式化字符串
在格式化字符串中可以直接嵌入变量
a = lee
b = tom
c = f'hello {a} {b}'
print(f'欢迎 {name} 光临')
5、字符串复制(将字符串和数字相乘)
将字符串和数字相乘,会将字符串重复指定的次数并返回
六、布尔值(bool)和空值(None)
布尔值
布尔值主要用来做逻辑判断
布尔值有两个值:True,False
布尔值实际上属于整型,True = 1,False = 0
空值
None表示不存在
七、类型检查(type函数)
通过类型检查,只能检查变量对应的值的类型
type()
用来检查值的函数
该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值
c = type('123')
八、对象(object)
1、介绍
python是一门面向对象的语言
一切都是对象
程序运行当中,所有的数据都是存储在内存中再运行的
对象就是内存中专门用来存储指定数据的一块区域
对象实际上就是一个容器,专门用来存储数据
数值、字符串、布尔值、None等都是对象
2、结构
每个对象中都要保存三种数据
id–标识
id用来标识对象的唯一性,每一个对象都有唯一的id
可以通过id()函数来查看对象的id
id是由解析器生成的,在Cpython中,id就是对象的内存地址
对象一旦创建,id则不能再改变
type–类型
类型用来表示当前对象所属的类型
比如int、str、float等
类型决定了对象的功能
python是一门强类型语言,对象一旦创建,不能修改
通过type()函数查看对象的类型
value–值
值就是对象中存储的具体数据
对于有些对象,值是可以改变的
对象分为两大类:可变对象和不可变对象
比如,123
id = 0x1211(举例),type = <class 'int'> ,value = 123
3、变量和对象
对象并没有直接存储在变量中,在Py中,变量更像是对象的别名。
变量中存储的不是对象的值,而是对象的id(内存地址)
使用变量时,实际上是在通过对象id查找对象。
当存在两个变量相等时:
当第一个变量改变其值,不会影响到另一个变量:
变量中保存的对象,只有在为变量重新赋值时才会发生改变
变量和变量之间是相互独立的,修改一个变量不会影响另一个变量。
九、类型转换
类型转换就是将一个类型的对象转换成其他类型
类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新的对象
1、int()
将其他的对象转换为整型
int()函数不会对原来的变量产生影响,是将对象转换成指定的类型并将其作为返回值返回
如果希望修改原来的变量,则需要对变量进行重新赋值
规则
布尔值:True - > 1 False -> 0
浮点数:直接取整,省略小数点后的内容
字符串:合法的整数字符串,直接转换为对应的数字,如果不是合法的整数字符串,则报错
对于其他不可转换为整型的对象,直接抛出异常ValueError
2、float()
filat()和int()基本一致,不同的是会将对象转换为浮点数
字符串:需要是一个合法的小数字符串,不是则报错
3、str()
将对象转换为字符串
规则
Ture -> ‘True’
Fause -> ‘Fause’
123 -> ‘123’
4、bool()
bool()可以将对象转换为布尔值,任何对象都可以转换成布尔值
规则
对于多有空性的对象都会转换为False,其余都会转换为True
空性:0,None,‘ ’(空字符串)
十、运算符(操作符)
运算符可以对一个值货多个值进行运算或者各种操作。(+、-、=)
1、算术运算符
+(运算、拼串)
-
*(字符串和数字相乘,对字符串进行复制操作,将字符串重复指定次数)
/(运算时总会返回一个浮点数,除数不能为0)
//(整除,只会保留计算后的整数位,总会返回一个整型)
**(幂运算)
%(取模,即取余)
2、赋值运算符
**=**将右边的值赋值给左侧的变量
+= a+=5 相当于 a= a+5
-=
*=
**=
/=
//=
%=
对浮点数进行算术运算时,结果会返回一个浮点数
3、关系运算符(比较运算符)
用来比较两个值之间的关系,总会返回一个布尔值
如果关系成立,返回True或者False
**>**大于
**<**小于
**<=**小于或者等于
**>=**大于或者等于
**==**比较两个对象的值是否相等(相等和不等比较的是对象的值,不是id)
**!=**比较两个对象的值是否 不等
is比较的是两个对象是否是同一个对象,比较的是对象的id
is not比较两个对象是否不是同一个对象
两个字符串的比较
- 在python中可以对两个字符串进行大于(等于)或者小于(等于)的运算
- 当对字符串进行比较时,实际上比较的是字符串的unicode编码
- 在比较两个字符串的unicode编码时,是逐位比较的
- 利用该特性,可以对字符串按照字母顺序进行排序,但是对于中文来讲,意义不大
- 如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较
4、逻辑运算符
主要用来进行逻辑判断
逻辑运算可以连着使用
result = 1 < 2 < 3 #相当于1 < 2 and 2 < 3
not 逻辑非
- 可以对符号右侧的值进行非运算
- 对于布尔值,非运算会对其进行取反操作
- 对于非布尔值,非运算会先将其转换为布尔值,然后再取反
and 逻辑与
- 可以对符号两侧的值进行与运算
- 只有在符号两侧的值都是True时,才会返回True,只要有一个False,就返回False
- 与运算是找False
- python中的与运算是短路的,如果第一个值是False,则不再看第二个值
True and print("hello") ##第一个值是True,会看第二个值,print()会执行
False and print("hello") ##第一个值是False,不会看第二个值,print()不会执行
or 逻辑或
- 可以对符号两侧的值进行或运算
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True
- python中的或运算是短路的,如果第一个值为True,则不再看第二个值
5、非布尔值的逻辑运算符
当对非布尔值进行与或运算时,python会将其当作布尔值运算,最终会返回原值
result1 = 1 and 2 ##与运算找False,如果第一个是False,则直接返回第一个值,否则返回第二个值,无论第二个值是什么
result2 = 1 and 0
result3 = 0 and 1
result4 = 0 and None
print(result1,result2,result3,result4)
- 同理,或运算找True,如果第一个值是True,返回第一个值,否则返回第二个值,不论是什么
6、条件运算符(三元运算符)
语法: 语句1 if
条件表达式 else
语句2
执行流程:
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
print("hello") if True else print("world")
7、运算符的优先级
与and的优先级比或or高
在官方表格中,位置越靠下的运算符优先级更高
如果优先级一样则自左向右计算
在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序
or < and < not x