Python学习日记Day2——数据类型和运算符

目录

一、保留字与标识符

 1,保留字

2,标识符

 二、常量和变量

1,变量

三、数值类型

1,整数类型

2,浮点数类型

 3,字符串类型

1,字符串

 2,转义字符

3,原字符

4,字符串的索引和切片

5,常用的字符串的操作

4、布尔类型

5,数据类型之间的转换

四、函数 

1,eval函数

五、运算符

1,算术运算符

2,赋值运算符

3,比较运算符

4,逻辑运算符

5,位运算符

1,按“位与”运算&

2,按“位或”运算|

3,按“位异或”运算^

4,按“位取反”运算~

5,“左移位”运算<<

6,“右移位”运算>>

六、运算符的优先级


一、保留字与标识符

 1,保留字

保留字指的是在Python中被赋予意义的一些单词,在开发程序时,不可以把保留字作为变量、函数、类、模块和其他对象的名字来用。

andasassertbreakclasscontinuedef
delelifelseexceptfinallyforfrom
Falseglobalifimportinislambda
nonlocalnotNoneorpassraisereturn
tryTruewhilewithyieldawaitasync

注意:保留字严格区分大小写

使用内置模块keyword来查询保留字。

import keyword
print(keyword.kwlist)
print(len(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']
35

2,标识符

标识符就是一个名字,标识符的的命名规则:(必须遵守)

  1. 严格区分大小写
  2. 可以是数字、字母(大小写都可以)、下划线,第一个字符不能是数字
  3. 不能使用保留字
  4. 不建议用中文作为标识符
  5. 不建议以下划线开头

标识符的命名规范:

  1. 模块名尽量短小,全部小写,可以用下划线分割多个字母
  2. 包名尽量短小,全部小写,用.分隔,不推荐使用下划线
  3. 类名单词首字母大写,例如MyClass
  4. 模块内部的类采用‘_’+Pascal风格的类名组成,例如,在MyClass中的内部类_InnerMyClass
  5. 函数、类的属性和方法的命名,全部使用小写字母,多个字母之间使用下划线分隔
  6. 常量命名时采用全部大写字母,可以使用下划线
  7. 使用单下划线'_'开头的模块变量或函数是受保护的,在使用”from xxx import"语句从模块中导入时,这些模块变量或函数不能被导入
  8. 使用双下划线“__”开头的实例变量或方法是类私有的
  9. 以双下划线开头和结尾的是Python的专用标识,例如,__init_()表示初始化函数

 二、常量和变量

1,变量

变量名 = value

栈内存堆内存
变量名value

在Python中,不同的变量可以指向同一个值

num = no = 2024
print(num,no)
print(id(num))#查看num变量的内存地址
print(id(no))

运行结果:

2024 2024
1784610477584
1784610477584

 num和no的内存地址相同,说明指向的是同一个值,而不仅仅是二者数值上相等,是同一个。

三、数值类型

1,整数类型

整数类型表示的数值是没有小数部分的数值,包含正整数、负整数和0

整数类型是不可变数值类型

2,浮点数类型

浮点数类型表示带有小数点的数值,由整数部分和小数部分组成

浮点数可以用科学计数法来表示,后面加E

height = 187.6
print('height的数据类型是:',type(height))

x = 10
y = 10.0
print('x的数据类型是:',type(x))
print('y的数据类型是:',type(y))

x = 1.99E1413
print('科学计数法',x,'x的数据类型是:',type(x))

运行结果:

height的数据类型是: <class 'float'>
x的数据类型是: <class 'int'>
y的数据类型是: <class 'float'>
科学计数法 inf x的数据类型是: <class 'float'>

浮点数的计算会存在不确定的尾数问题,即计算不是非常精确

print(0.1+0.2)
print(round(0.1+0.2,1))

0.30000000000000004
0.3

这里的末尾00004就是不确定的尾数问题,可以使用round()函数来保留小数

浮点数也是不可变数据类型 

浮点数中的复数与数学中的复数完全一致,由实部和虚部组成。实部用.real表示,虚部用.imag表示

x = 200+52j
print(x.real)
print(x.imag)

200.0
52.0

 3,字符串类型

1,字符串

字符串类型是连续的字符序列,可以表示计算机所能识别的一切字符。

字符串的界定符:单引号、双引号、三引号

 字符串类型也是不可变数据类型

定义多行字符串:三个单引号or三个双引号

address = '''北京市海淀区学院路
北京航空航天大学
自动化系'''
print(address)

北京市海淀区学院路
北京航空航天大学
自动化系

 2,转义字符

转义字符描述说明
\n换行符

\t

水平制表位,用于横向跳到下一个制表位
\"双引号
\'单引号
\\一个反斜杠

3,原字符

原字符可以使转义字符失效, r或R

print('北京')
print('欢迎你')
print('北京\n欢迎你')
print('北\n京\n欢\n迎\n你')
print('北京\t欢迎你')
print('老师说:\'好好学习\'')
print(R'北\n京\n欢\n迎\n你')

北京
欢迎你
北京
欢迎你





北京    欢迎你
老师说:'好好学习'
北\n京\n欢\n迎\n你 

4,字符串的索引和切片

 索引是对字符串中某个字符的检索

切片是对字符串中某个子串或区间的检索,s[N,M]索引值从N开始,到M结束,不包括M

-10-9-8-7-6-5-4-3-2-1
HELLOWORLD
0123456789
s = 'HELLOWORLD'
print(s[0],s[5])
print('北京欢迎你'[4])
print(s[0:2])

H W

HE

5,常用的字符串的操作

操作符描述说明
x+y将字符串x和y进行连接
x*n或n*x复制n次字符串x
x in s如果x是s的子串,结果为Ture;如果不是,结果为False
x = '北京航空航天大学'
y = '自动化系'
print(x+y)
print(x*3)
print('大学' in x)
print('大学' in y)

北京航空航天大学自动化系
北京航空航天大学北京航空航天大学北京航空航天大学
True
False 

4、布尔类型

布尔类型是用来表示”真“或”假“的数据类型,是不可变数据类型。True表示整数1,False表示整数0。

x = True
print(x)
print(type(x))
print(x + 10)
print(False + 10)

 True
<class 'bool'>
11
10

测试对象的布尔值:

print(bool(7))
print(bool(0))
print(bool(0.0))
print(bool('北京欢迎你'))
print(bool(''))
print(bool(False))
print(bool(None))

True
False
False
True
False
False
False

 布尔值为False的情况如下:

  1. None或者False
  2. 数值中的0,包含0,0.0,虚数0
  3. 空序列,包含空字符串、空元组、空列表、空字典、空集合(不是一个空格)
  4. 自定义对象的实例,该对象的_bool_()方法返回False或_len_()方法返回0

5,数据类型之间的转换

函数描述说明
int(x)将x转换成整数类型,没有四舍五入,只保留整数部分
float(x)将x转换成浮点数类型
str(x)

将x转换成字符串

chr(x)

将整数x转换成一个字符

ord(x)

将一个字符x转换为其对应的整数值

hex(x)

将一个整数x转换成一个十六进制的字符串

oct(x)将一个整数x转换成一个八进制的字符串
bin(x)将一个整数x转换成一个二进制的字符串

x = 10
y = 3
z = x/y#在进行除法运算的时候,将结果赋值给变量z
print(z,type(z))#通过除法运算,完成了隐式转换,将两个整型转换成浮点型

#将loat类型转换成int类型
print('float类型转换成int类型:',int(3.14))
print('float类型转换成int类型:',int(3.9))
print('float类型转换成int类型:',int(-3.14))
print('float类型转换成int类型:',int(-3.9))

#将int类型转成float类型
print('将int类型转成float类型:',float(7))

#将str类型转成int类型
print(int('100')+int('200'))
#将str类型转成int float类型时,不能包含字母
#将str类型转成int时,str所表示的数值必须是整数

#chr()和ord()的转换
print(ord('杨'))
print(chr(26472))

#十进制与其他进制之间的转换,转换之后的结果是一个字符串类型
print('十进制转成十六进制:',hex(26472))
print('十进制转成八进制:',oct(26472))
print('十进制转成二进制:',bin(26472))

 3.3333333333333335 <class 'float'>
float类型转换成int类型: 3
float类型转换成int类型: 3
float类型转换成int类型: -3
float类型转换成int类型: -3
将int类型转成float类型: 7.0
300
26472

十进制转成十六进制: 0x6768
十进制转成八进制: 0o63550
十进制转成二进制: 0b110011101101000

四、函数 

1,eval函数

eval()函数用于去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符串。

eval的语句格式:变量 = eval(字符串)

eval()函数经常与input()函数一起使用,用来获取用户输入的数值型。其中,input()的结果是字符串类型

s = '3.12+3'
print(s,type(s))
x = eval(s)#去掉字符串s的引号,执行加法运算
print(x,type(x))

#eval()函数与input()函数一起使用,用来获取用户输入的数值型
age = eval(input('请输入您的年龄:'))#字符串类型转成int类型,相当于int(字符串)
print(age,type(age))
height = eval(input('请输入您的身高:'))#字符串转成float类型,相当于float(字符串)
print(height,type(height))

hello = '北京欢迎你'
print(hello)
print(eval('hello'))

3.12+3 <class 'str'>
6.12 <class 'float'>
请输入您的年龄:24
24 <class 'int'>
请输入您的身高:187.2
187.2 <class 'float'>
北京欢迎你
北京欢迎你

但是,最后一行如果是”print(eval(hello))",程序就会报错。

五、运算符

1,算术运算符

运算符描述说明示例结果
+加法1+12
-减法1-10
*乘法2*36
/除法10/25.0
//整除10//33
%取余10%31
**幂运算2**416

2,赋值运算符

=

x+=y:将x+y的值赋值给x

x-=y:将x-y的值赋值给x

x*=y:

x/=y:这里,x的数据类型发生了类型变换

x%=y:

x//=y

Python支持系列解包赋值:

a,b = 20,30
print(a,b)

a,b = b,a
print(a,b)

20 30
30 20 

3,比较运算符

运算符描述说明示例展开形式
>大于98>90True
<小于98<90False
==等于98==90False
!=不等于98!=90True
>=大于或等于98>=98True
<=小于或等于98<=98True

4,逻辑运算符

运算符描述说明用法结合方向
and逻辑与表达式1 and 表达式2从左到右
or逻辑或表达式1 or 表达式2从左到右
not逻辑非not 表达式从右到左

5,位运算符

将数值用二进制表示,相同位进行运算

1,按“位与”运算&

2,按“位或”运算|

3,按“位异或”运算^

4,按“位取反”运算~

5,“左移位”运算<<

        左边(高位端)溢出的位被丢弃,右边(地位端)的空位用0补充

6,“右移位”运算>>

         右边(低位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1。

print('按位与运算:',12&8)
print('按位或运算:',4|8)
print('按位异或运算:',31^22)

print('按位取反',~213)
print('按位取反',~-213)

print('向左移动2位:',3<<2)#表示的是3向左移动两位,3*2*2
print('向左移动3位:',3<<3)#表示的是3向左移动三位,3*2*2*2

print('向右移动2位:',8>>2)#表示的是8向右移动2位,8/2/2
print('向右移动3位:',8>>3)#表示的是8向右移动3位,8/2/2/2
print('向右移动2位',-8>>2)#表示的是-8向右移动两位,-8/2/2

按位与运算: 8
按位或运算: 12
按位异或运算: 9
按位取反 -214
按位取反 212
向左移动2位: 12
向左移动3位: 24
向右移动2位: 2
向右移动3位: 1
向右移动2位 -2

六、运算符的优先级

有(),先算()

运算符描述说明
**幂运算
~、+、-取反、正号、负号
*、/、%、//算术运算符
+、-算术运算符
<<、>>位运算符中的左移位和右移位
&位运算符中的按位与
^位运算符中的异或
|位运算符中的按位或
<、<=、>、>=、!=、==比较运算符
=赋值运算符

  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栗知言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值