Python基础2(内置数据类型及转换)
数据类型
- 整形(int)
Python中可以处理任意大小的整数(包括负数),只受电脑内存大小的限制,如:-10,0,100等等
在计算机中有时使用其他进制比较方便,如2进制:0b1100,8进制:0o771,16进制:0x45af等等的数字
>>>s = -10
>>>s
-10
>>>b = 0b1100
>>>b
12
>>>o = 0o771
>>>o
505
>>>x = ox45af
>>>x
17839
- 浮点型(float)
浮点数也叫小数,Python中可以处理任意大小的浮点数,如:2.5,-3.9等等,通常较大的浮点数都是用科学计数法来表示:2.5e2用来表现2.5乘以10的2次方,浮点数在计算机内部与整数的存储方式不同,所以导致了整数的计算是精确的,而浮点数的计算可以会有四舍五入的差异
>>>f = 2.5
>>>f
2.5
>>>f1 = -3.9
>>>f1
-3.9
>>>f2 = 2.5e2
>>>f2
250
>>>f3 = 2.5e-2
>>>f3
0.025
- 复数(complex)
在Python中,复数也是一种数据类型,就是m + nj的这种形式的数字,m称为实数,nj称为虚数:
>>>a = 10 + 1j
>>>print(a)
(10+1j)
- 布尔型
布尔型数据类型只有两个值:True和False,用于表示真和假的量,如下:
>>> True
True
>>> False
False
>>> 5 > 3
True
>>> 4 > 6
False
布尔值也可用and(与),or(或),not(非)来运算,and是两边的表达式都为True时,返回True,or是两边表达式都为False的时候才返回False,not是一个一元运算符,只有一个操作数,意思是取反该表达式的值,如果表达式为True,则返回False,如果表达式为False,则返回True,如下:
>>> True and False
False
>>> True and True
True
>>> True or False
True
>>> False or False
False
>>> not True
False
>>> not False
True
>>> 3 > 5 and 5 > 3
False
>>> 3 > 5 and 6 > 3
True
>>> 3 > 5 or 5 > 3
True
>>> 3 > 5 or 3 > 6
False
>>> not 3 > 5
True
>>> not 5 > 3
False
- 字符串
字符串是电脑系统中最常见的数据类型,字符串是用''或者""括起来的任意文本,如'你好',"abc",'xyz'等等,有时候字符串里包含'或者"的时候,就需要对它进行转义,用\来表示,如'I\'m a teacher'实际表示为I'm a teacher,有时候为了避免混淆,可以使用双引号加单引号的形式来写,如"I'm a teacher"也是表示为I'm a teacher
>>> "I'm a teacher"
"I'm a teacher"
>>>'I\'m a teacher'
"I'm a teacher"
转义字符有很多种,最常用的转义字符有:\n(换行符),\t(制表符),\\(斜杠本身),在有转义字符的字符串前面加上r符号,则该字符串不会转义,如下:
>>>print('\\\n\\')
\
\
>>>print('\\\t\\')
\ \
>>>print(r'\\\t\\')
\\\t\\
有时候在一个长的字符串里用的转义字符太多,则会让字符串看起来杂乱不堪,则可以使用''' '''或""" """的方法来表示字符串,在Python里面不必对换行,制表符进行转义,一种所见即所得的模式,如:
>>> s = """I
...love
...python
"""
>>> print(s)
i
love
python
也可以在'''和"""前面加r,也表现该字符串不需要转义,\\的这种会原样显示出来,如下:
>>> s = r"""I
...\\love
...python
"""
>>> print(s)
i
\\love
python
python中的连接符\的使用:
>>>str1 = "Hello\
world"
>>>str1
"Helloworld"
字符串的拼接+与格式化%s,%d,%f:
| 符号 | 说明 |
|---|---|
| %s | 格式化字符串 |
| %d | 格式化10进制整形数字 |
| %f | 格式化浮点数 |
| %c | 格式化字符及ascii码 |
| %o | 格式化8进制数字 |
| %x | 格式化16进制数字 |
| %e | 格式化用科学计数法表示的定点数 |
格式化用的辅助符号:
| 符号 | 说明 |
|---|---|
| x.y | x表示数字总长度,y表示小数点后的位数 |
| - | 表示左对齐 |
| + | 表示在正数前面加上+号 |
| # | 表示在8进制数前面添加0o,在16进制数前面添加0x |
| 0 | 表示位数不足的时候,前面用0代替空格显示 |
>>>print("Hello"+",world") #这种用"+"方式的拼接,会浪费很多内存空间,每解释到一个字符串时,都会创建一个空间用于存放该字符串
Hello,world
>>>str1 = "world"
>>>str2 = "Python"
>>>print("Hello,%s,%s"%(str1,str2)) #这种方式创建的字符串用的空间比较少
Hello,world,Python
>>>age = 23
>>> print("age:%d"%age) #把age里的整型数字转换成字符串传入
age:23
>>>balance = 2.3
>>>print("balance:%f"%balance) #把balance里的浮点数转换为字符串传入
balance:2.3
>>>Pi = 3.1415926
>>>print("Pi:%5.3f"%Pi) #%5.3f:5表示小数总长度,3表示小数点后的位数,f表现浮点数
3.142
>>>year = 876
>>>print("year:%4d"%year)
year: 876
>>>print("year:%04d"%year) #%04d:表示位数不足4位时,前面填充0
year:0876
另外,在python中有另外一种方法format()用来格式化字符串,如下:
>>>str1 = '{0}{1}{2}'.format('hello',',','world') #注意参数的个数要与前面相对应
>>>print(str1)
hello,world
>>>str2 = '>:\t{0:b}'.format(3) #混合使用两种方式,把3的十进制数据转换为二进制数据的字符串
>>>print(str2)
>: 11
>>>import math
>>>str3 = '>:\t{0:3.5f}'.format(math.pi)
>>>str3
'>:\t3.14159'
>>>print(str3)
>: 3.14159
- None
常量None在Python中表示为空,是一个特殊的数据类型,也不是为0.如:
>>>None
#这里不会输入任何东西
数据类型的相互转换
- 数值类型的隐式转换
在参与运算的两个或则多个数字,可以是不同类型,但是得确保低的类型可以转换为高的类型,转换时的顺序是:
int—->float—->complex
>>>10 + 10.0
20.0
>>>10 + (10 + 1j)
(20+1j)
>>>11.0 + (10 + 1j)
(21+1j)
- 数值类型的强制转换
在数据类型中可以强制进行转换,注意:complex的类型是不能强制转换为int和float类型的值,如:
>>>int(10.0) # float ---> int
10
>>>int('10.0') # str ---> int
10
>>>float(10) # int ---> float,提升数据类型
10.0
>>>'my' + str(10) # int ---> str
'my10'
>>>str(10 + 1j) # complex ---> str
'10+1j'
>>>complex('10+1j') # str ---> complex,注意字符串中间不能有空格才能转换成功
(10+1j)
>>>complex(10) # int --->complex,提升数据类型,提升后不能再转换回去,因为complex不能转到int类型
(10+0j)
本文介绍了Python的基础数据类型,包括整型(int)、浮点型(float)、复数(complex)、布尔型(True/False)、字符串(str)以及None。详细讲解了各类数据类型的特点,如整型不受内存限制,浮点型可能存在计算误差,字符串的转义字符与连接符,以及None的特殊意义。同时,文章还讨论了数据类型的相互转换,包括隐式转换和强制转换的规则。

2231

被折叠的 条评论
为什么被折叠?



