Python基础语法
Python作为一种高级编程语言,自其诞生以来,因其简洁的语法、丰富的库支持和广泛的应用领域而备受欢迎。Python的基础语法有变量、注释、基本数据类型、格式化字符串、运算符、选择循环结构、命名空间和作用域的方面。
基础数据类型转换
上一篇中我们介绍了,能够直接处理的数据类型有:int 整型 、float 浮点型 、str 字符串 、bool类型
int整型转换
int整型可以转化为浮点型、字符串、bool类型吗?用什么方式来转化呢?
a = 1
b = 0
c = -1
d = -0
# int 转 float >>>直接以你要转换的目标类型来输出
print(float(a),float(b),float(c),float(d))
#>>>那么此时,我要是想直接将这个整数型a转化为保留两个小数点的浮点型呢
print('%.2f' %a) # %f:a已经被强制转换为浮点型
# int 转 str
print(str(a),str(b),str(c),str(d)) #输出结果看似没变,实则数字已经转化成了字符
# int 转 bool 非0即True
print(bool(a),bool(b),bool(c),bool(d))
---------------------------------
整段输出结果:
1.0 0.0 -1.0 0.0
1.00
1 0 -1 0
True False True False
float浮点型转换
float浮点型的转换与int整型是否差不多呢?
e = 1.1
f = 1.0
g = 0.0
h = -0.0
i = -2.1
# float 转 int >>>就取小数点之前的数字,因为int是整数型取整
print(float(e),float(f),float(g),float(h),float(i))
#>>>是否可以像int转换float时一样强制取整呢
print('%d' %i) #结果显然是可以的,举一反三
# float 转 str
print(str(e),str(f),str(g),str(h),str(i)) #结果也从数字转化为了字符型
# float 转 bool 非0即True
print(bool(e),bool(f),bool(g),bool(h),bool(i))
-----------------------------
整段输出结果:
1.1 1.0 0.0 -0.0 -2.1
-2
1.1 1.0 0.0 -0.0 -2.1
True True False False True
str字符型转换
str 转 int
好,我们依旧尝试一下上述两个转化的方法来试试对str类型的转换:
试试str字符型转化为int整型:
j = "1"
k = '1.0'
# str 转 int
print(int(j))
print(int(k))
--------------------------
结果显示:
Traceback (most recent call last):
File "D:\pythoncharm\study\str.py", line 6, in <module>
print(int(k))
ValueError: invalid literal for int() with base 10: '1.0'
1
#错误表示:表示你尝试将一个包含小数点的字符串('1.0')转换为整数(int),但整数类型不支持小数点。
由此可见,str字符型不能将float样式的字符转化为int型!!那么字符字面量样式可以转换吗?
k = '1.0'
m = "True"
#str 转 int
print(int(j))
print(int(m))
---------------------------------------
输出结果:
Traceback (most recent call last):
File "D:\pythoncharm\study\str.py", line 6, in <module>
print(int(m))
ValueError: invalid literal for int() with base 10: 'True'
#表示你尝试将一个字符串 'True' 转换为整数(int),但 'True' 并不是一个有效的整数字面量。
没错,str也不能直接将字符字面量样式转化为int型!!
那么综上所知,str转int要求为:
#只有数值型(整数)的字符串才能转换为int
str 转 float
str转int方式发生了变化,那么转换成float类型呢?
同样我们先尝试数值型:
# str 转 float
j = "1"
k = '1.0'
l = '1.2'
o = "0"
print(float(j))
print(float(k))
print(float(l))
print(float(o))
--------------------
输出结果:
1.0
1.0
1.2
0.0
从上述代码中,我们可得到的结论:数值型的字符串都可以转化为float。再试试字符字面量样式可以转换吗?
m = "True"
n = "False"
print(float(m))
print(float(n))
---------------------------
输出结果:
Traceback (most recent call last):
File "D:\pythoncharm\study\str.py", line 4, in <module>
print(float(m))
ValueError: could not convert string to float: 'True'
#表示你尝试将一个字符串 'True' 转换为浮点数(float),但 'True' 并不是一个有效的浮点数表示。
由此可知,str也不能将字符字面量样式的变量转化为float。
综上所述,str转float要求:
# 只有数值型的字符串才能转换为float
str 转 bool
我们知道bool类型在python中是判断真假,输出"True"或者"False",真假也分别与数值1,0对应相关,那么对于str字符型我们转换成bool时是如何体现的呢?
j = "1"
k = '1.0'
l = '1.2'
m = "True"
n = "False"
o = "0"
#str 转 bool
print(bool(j))
print(bool(k))
print(bool(l))
print(bool(m))
print(bool(n))
print(bool(o))
-----------------------
输出结果:
True
True
True
True
True
True
上述编码可以发现:无论是整型数值样式,浮点型数值样式又或字符字面量型样式的输出结果都为True,难道str转换成bool只能输出True吗?我们来介绍两个新的小玩意儿:
complex类型
在Python中,complex
类型用于表示复数。复数是数学中的一个概念,由实部和虚部组成,通常表示为 a + bi
的形式,其中 a
是实部,b
是虚部,而 i
是虚数单位,满足 i^2 = -1
。
# complex
a = 1 + 2j
print(a.real) #.real实数;.imag虚数
print(a.imag)
print(type(a))
-----------------------
输出结果:
1.0
2.0
<class 'complex'>
None类型
在Python中,None
是一个特殊的类型,它代表空值或“无”的概念。None
是 Python 的一个内置常量,而不是一个关键字。它经常被用作函数的默认返回值,或者表示某个变量或对象不存在或尚未被赋予任何值。
# None 空
# 空字符 与空格" "不一样
#空字符体现:print('')
b = None
print(b, type(b))
------------------
输出结果:
None <class 'NoneType'>
介绍完complex和None后,我们把它们也转换成bool类型试试看:
#转换复数
a = 1 + 2j
print(bool(a))
#转换空字符
print(bool(""))
#转换空格
print(bool(" "))
---------------------------
输出结果:
True
False
True #空格不等于None
上述代码中发现,当转换的字符为空时,输出为False,故str转换bool类型条件为:
# str 转 bool 只要字符串不是空 结果就是True
bool类型转换
bool类型转换为数值型时,可以用True = 1;False = 0即1或0表示;转换为字符型用True ,False表示。
p = True
q = False
#Python中有:True = 1;False = 0
# bool 转 int
print(int(p))
print(int(q))
# bool 转 float
print(float(p))
print(float(q))
# bool 转 str
print(str(p))
print(str(q))
--------------------------
输出结果:
1
0
1.0
0.0
True
False
转换总结
int整型转换要求:>>>直接以你要转换的目标类型来输出 , 转bool时非0即True
float浮点型转换要求:>>>直接以你要转换的目标类型来输出, 转bool时非0即True
str字符型转换要求:>>>转int:只有数值型(整数)的字符串才能转换为int
>>>转float:只有数值型的字符串才能转换为float
>>>转bool:只要字符串不是空 结果就是True
bool类型转换要求:>>>直接以你要转换的目标类型来输出,注意bool的True和False有1和0的含义