前言
本次主要閒聊一下python的一些數值類型,整型(int),浮點型(float),布爾類型(bool),還有e記法(科學計數法),也是屬於浮點型。python
數值類型介紹
整型
整型就是咱們平時所說的整數。python3的整型已經和長整型進行了無縫結合,長度不受限制,python3很容易實現大數運算。
python2的長整型後面要加上L
浮點型
浮點型也就是日常咱們所說的小數,例如咱們的圓周率3.14,python區分整型與浮點型的惟一方式就是看有沒有小數點
e記法
e記法就是咱們平時所說的科學計數法,用來表示特別大或者特別小的數,例如:
>>> 0.00000078
7.8e-07
這個e,就是e記法的意思
地球到太陽的距離是1.5億千米,轉換成米,就是:150000000000
寫成e記法就是:
>>> 1.5e11
150000000000.0
你們能夠看出來e=10,後面跟的數字就是幾回方的意思,例如說15000,就能夠表示成:
>>> 1.5 * (10**4)
15000.0
>>> 1.5e4
15000.0
1
2
3
4
5
6
7
8
9
10
11
12
布爾類型
特殊的整型。True至關於整數1,False至關於整數0,例如:
>>> True + True
2
>>> True + False
1
>>> 0 + True
1
>>> True * False
0
>>> True / False
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
True / False
ZeroDivisionError: division by zero
>>>
錯誤緣由:除數不能爲0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
數值類型轉換
整數(int)
整數:int()
>>> a= '520'
>>> b = int(a)
>>> b
520
>>> a = '小甲魚'
>>> c = int(a)
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
c = int(a)
ValueError: invalid literal for int() with base 10: '小甲魚'
錯誤緣由是:字符編碼不符合
>>> a = 5.99
>>> c = int(a)
>>> c
5
浮點數轉換成整數,python會採起把小數點後面的數字截斷處理,由於這樣效率高
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
浮點數:float()
浮點數:float()
>>> a = 520
>>> b = float(a)
>>> b
520.0
>>> a = '520'
>>> b = float(a)
>>> b
520.0
1
2
3
4
5
6
7
8
9
字符串:str()
字符串:str()
將一個數,或任何其餘類型轉換成字符串,例如:
>>> a = 5.99
>>> b = str(a)
>>> b
'5.99'git
>>> a = True
>>> b = str(a)
>>> b
'True'shell
>>> a = True + True
>>> b = str(a)
>>> b
'2'函數
>>> c = str(5e19)
>>> c
'5e+19'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
獲取類型信息
type()函數
python提供了type()函數,來獲得數據的類型。
>>> type(a)
<class 'str'>
>>>
>>> a = 5.2
>>> type(a)
<class 'float'>
>>>
>>> type(True)
<class 'bool'>
>>>
>>> type(5e19)
<class 'float'>
>>>
>>> type(1)
<class 'int'>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
isinstance()函數
python更推薦使用isinstance()函數,來獲得數據類型,例如:
>>> a = '小甲魚'
>>>
>>> isinstance(a,str)
True
>>> isinstance(a,int)
False
>>> isinstance(1,bool)
False
意思就是說,這二者類型一致,就返回True,不一致返回False
1
2
3
4
5
6
7
8
9
10
練練手
判斷給定年份是否爲閏年。編碼
閏年是這樣定義的:
普通年(不能被100整除的年份)能被4整除的爲閏年。(如2004年就是閏年,1999年不是閏年);
世紀年(能被100整除的年份)能被400整除的是閏年。(如2000年是閏年,1900年不是閏年);字符串
第一種寫法:
temp = input('請輸入一個年份:')
while not temp.isdigit():
temp = input("抱歉,您的輸入有誤,請輸入一個整數:")input
year = int(temp)
if year/400 == int(year/400):
print(temp + ' 是閏年!')
else:
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
print(temp + ' 是閏年!')
else:
print(temp + ' 不是閏年!')it
第二種寫法:
temp = input("請輸入一個年份:")
while True:
if temp.isdigit():
year = int(temp)
if (year/400) == int(year/400):
print(year,"爲閏年")
else:
if ((year/4) == int(year/4)) and ((year/100) != int(year/100)):
print(year,"爲閏年")
else:
print(year,"不爲閏年")
break
else:
temp=input("您輸入的有誤,請從新輸入:")
io