Python学习笔记week 2 (待完善)
文章目录
第三章 数据类型和运算符
1.保留字和与标识符
(1)保留字
指在Python中被赋予特定意义的一类单词,在开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用
如:
and | as | assert | break | class | continue | def |
---|---|---|---|---|---|---|
del | elif | else | except | finally | for | from |
False | global | if | import | in | is | lambda |
nonlocal | not | None | or | pass | raise | return |
try | Ture | while | with | yield | await | async |
可使用如下语句查询
import keyword
print(keyword.kwlist)
print(len(keyword.kwlist))#获取保留字的个数
(2)标识符
命名规则
-
不能以数字开头
-
不能是关键字
-
严格区分大小写
-
可以是汉字或其他合法字符命名,但不推荐
-
英文大小写字母、数字、下划线( _ )和美元符号
命名规范
- 模块名尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母。列如:grame_main
- 包名尽量短下,并且全部使用小写字母,不推荐使用下划线。例如:com.ysjpython,不推荐com_ysjpython
- 类名采用单词首字母大写形式(Pascal风格)。例如:Myclass
- 模块内部的类采用“_”+Pascal风格。例如:__InnerMyclass
- 函数、类的属性和方法的命名,全部使用小写字母,多个字母之间使用下划线分隔
- 常量命名时采用全部大写字母,可以使用下划线
- 使用单下划线_开头的模块变量或函数是受保护的,在使用“from xxx import*”语句从模块中导入时,这些模块变量或函数不能被导入
- 使用双下划线“_”开头的实例变量或方法是类私有的
- 以双下滑线开头和结尾是Python的专用标识,例如:-init-()表示初始化函数
2.变量与常量
(1)变量
语法结构 变量名=value
luck_number=8#整形变量,赋值8
my_name="周恩泽"#字符串类刑的变量
print('luck_number的数据类型是:',type(luck_number))
print(my_name,'的幸运数字是',luck_number)
#python动态修改变量的数据类型,通过赋予不同类型的值就可以直接修改
luck_number='哈哈
#允许多个变量指向同一个值
no=number=1212
print(id(no))#id()查看对象的内存地址
(2)常量
程序运算过程中,值不允许改变的量,全部使用大写字母和下划线命名
pi=3.14#定义一个变量
PI=3.14#定义一个常量
3.数值类型
(1)整数类型
进制类型 | 引导符号 | 描述 |
---|---|---|
十进制 | 无 | 365 789 |
二进制 | 0b 0B | 0b111 0B111 |
八进制 | 0o 0O | 0o763 |
十六进制 | 0x 0X | 0x987A |
num=987
num2=0b1010#二进制
num3=0o765#八进制
print(num2)#输出十进制
(2)浮点数类型
带有小数点的数值
python的复数与数学中的复数形式完全一样,由实部与虚部组成
j=根号下-1
实数部分.real表示,虚数部分.imag表示
print(0.1+0.2)#不确定的尾数问题0.30000000004
print(round(0.1+0.2))#0.3
x=123+456j
print('实数部分',x.real)
print('虚数部分',x.imag)
(3)字符串类型
界定符:单引号、双引号、三引号
转义字符 | 描述说明 |
---|---|
\n | 换行 |
\t | 水平制表位 |
" | 双引号 |
’ | 但引号 |
\ | 一个反斜杠 |
city='天津'
address='苇名'
print(city)
print(address)
#多行字符串
info='''地址:江西理工大学三江校区
收件人:周恩泽
手机号;18888888888
'''
print(info)
print('我\n玩只狼')#遇到\n即换行,可连续换多行
print(r'jskdakjsda\n')#此时换行失去作用,R也行
索引与切片
字符串又被称为有序的字符序列,对字符串中某个字符的检索称为索引
-10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
---|---|---|---|---|---|---|---|---|---|
H | E | L | L | O | W | O | R | L | D |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
对字符串中某个子串或区间的检索称为切片
切片的语法结构
字符串或字符串变量[N:M] 从N开始到M结束,不包含M
s='HELLOWORLD'
print(s[0],s[-10])#序号0和序号-10表示的是同一个字符
print('我爱只狼'[4])#获取字符串中索引为4
print(s[2:7])#正向递增,不包含7
print(s[-8:-3])#反向递减
print(s[:5])#默认N从0开始
print(s[5:])#默认是切到字符串的结尾
常用的字符串操作
操作符 | 描述说明 |
---|---|
x+y | 将字符串连接起来 |
x*n或反过来 | 复制n次字符串x |
x in s | 如果x是s的子串,结果为Ture,否则结果为False |
(4)布尔类型
布尔类型是一种逻辑类型,它只有两个取值:True(真)和False(假)。在Python中,True和False是内置的布尔类型常量,用于表示真和假的状态。
Ture表示整数1 False表示整数0
x=Ture
print(x)
print(type(x)) #bool
print(x+10)#11
print(False+10)#10
print(bool(18))#测试整数18的布尔值#Ture
#总结,非0的整数布尔值都是Ture
#所有非空字符串的布尔值都是Ture
1,布尔型,False表示False,其他为True
2,整数和浮点数,0表示False,其他为True
3,字符串和类字符串类型(包括bytes和unicode),空字符串表示False,其他为True
4,序列类型(包括tuple,list,dict,set等),空表示False,非空表示True
5,None永远表示False
4.数据类型之间的转换
函数 | 描述说明 |
---|---|
int(x) | 整数类型 |
float(x) | 浮点数类型 |
str(x) | 字符串 |
chr(x) | 字符 |
ord(x) | 对应整数值 |
hex(x) | 十六进制字符串 |
oct(x) | 八进制字符串 |
bin(x) | 二进制字符串 |
x=10
y=3
z=x/y#在执行除法运算的时候,将运算的结果赋给z
print(z,type(z))#隐式转换,通过运算隐算式的转了结果的类型
#float类型转为int类型,取整
print(int(3.14))
print(float(10))#转浮点
#将字符串转成int float报错:
#print(int(18a))#18a非十进制
#print(int('3.14'))3.14非int刑
#chr()ord()一对
print(ord('杨'))#杨在Unicode表对应的整数值
print(chr(26472))#懂?
print('十进制转十六进制',hex(4145))#类推oct八 bin二
5.eval函数
作用:将字符串转为python语句(就是去掉“”)然后执行转化后的语句
例子:
a = 1
b = 2
c = eval("a+b")
print(c)
#输出为3
简单使用:
使用input()函数输入,数据会以字符串的形式返回。如果我们输入的是需要参与计算的数字,则还需要转换类型,有了eval()函数,我们可以这样做:
eval(input("请输入数字"))
age=eval(input('请输入你的年龄:'))#将字符串类型转成了int类型,相当于int(age)
hello='北京欢迎你'
print(hello)#
print(eval('hello'))#也输出北京欢迎你
print(eval('北京欢迎你'))#报错,北京欢迎你未定义
6.算术运算符
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
+ | |||
- | |||
* | |||
/ | 除法 | 10/2 | 2.0 |
// | 整除 | 10//3 | 2 |
% | 取余 | ||
** | 冥 |
7.赋值运算符
算术运算的优先级 **
*、/%、//
+ -
运算符 | 描述说明 | 实例 | 展开x |
---|---|---|---|
= | 略 | x=y | x=y |
+= | x+=y | x=x+y | |
-= | x-=y | x=x-y | |
*= | x*=y | x=x*y | |
/= | x/=y | x=x/y | |
%= | x%=y | x=x%y | |
**= | x**=y | x=x**y | |
//= | x//=y | x=x//y |
与c++类似,详细示例省略
python支持链式赋值 a=b=c=100 相当于a=100 b=100 c=100
python支持系列解包赋值 a,b=10,20 即a=10 b=20
a,b=b,a#将b的值赋给a,将a的值赋给b
print(a,b)
8.比较运算符
运算符 | 描述说明 | 示例 | 展开形式 |
---|---|---|---|
> | 大于 | ||
< | 小于 | ||
== | 等于 | 98==90 | False |
!= | 不等于 | 98!=90 | Ture |
>= | 大于或等于 | 98>=98 | Ture |
<= | 小于或等于 | 98<=98 | Ture |
print('98大于90吗?',98>90)#Ture
算规则:
-
a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false
-
a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false
-
a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
-
a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
-
!a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
-
a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false
print(8>7 and 6>5)Ture
print(8<7 and 10/0)#Flase,10/0并没有运算
print(Flase or Ture)#两侧均为Flase才Flase
print(8>7 or 10/0)#Ture ,左侧的表达式结果为Ture时,or的右侧表达式根本不执行运算符
print(not Flase)#Ture取反
9.位运算符
e ,则结果为 true,否则为 false
-
!a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
-
a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false
print(8>7 and 6>5)Ture
print(8<7 and 10/0)#Flase,10/0并没有运算
print(Flase or Ture)#两侧均为Flase才Flase
print(8>7 or 10/0)#Ture ,左侧的表达式结果为Ture时,or的右侧表达式根本不执行运算符
print(not Flase)#Ture取反
9.位运算符
print(12&8)#按位或
print(4︱8)#按位与
print(2<<2)#8,向左2位
print(2<<3)#移三位