在python中,數據類型的轉換非常的簡單只需要用相應的類型進行包裹即可,方式如下:
i = '45'
print(type(int(i)))
-----------------------------------------------------------------------
執行結果:
<class 'int'>
上邊的代碼用int()方法,將strl類型的“45”轉換成int型的45,這將會非常有用,等你用到的時候你就會知道。
當然,你也可以馬上使用它,在輸出時進行字符串拼接。
str轉int,當然int也可以轉str:
i = 45
print(type(str(i)))
-----------------------------------------------------------------------
執行結果:
<class 'str'>
當然,類型的轉換不僅限於int和str,請看下面的代碼:
a = 5
b = 4.25
print(float(a))
print(float(b))
print(int(b))
print(str(b))
-----------------------------------------------------------------------
執行結果:
5.0
4.25
4
4.25
你可以進行各種轉換,但是有時會有限制,比如下面的代碼:
c = 'c'
print(int(c))
---------------------------------------------------------------------
執行結果:
ValueError: invalid literal for int() with base 10: 'c'
我讓c等於字符"c",並且試圖將c強轉爲int型數據,但是卻產生了錯誤“值錯誤:以10爲底的int()的無效文字:‘c’”,所以說在python中非數字字符數據是無法轉換成int型數據的。
這和C/C++的結果是不同的,在C/C++中將一個字符轉換成int型,就會將該字符轉換爲對應的ASCII碼,事實上這更像是一種等價關係,你可以用一個字符代表一個數字,但是這樣有時在程序中會讓其他程序員一頭霧水。請看下面的C語言代碼:
#include<stdio.h>
int main(void){
int a = 100;
printf("%c\n", a);
char b = 'c';
printf("%d\n", b);
int c = 97;
if(c == 'a'){
printf("他們相等!\n");
}else{
printf("他們不相等!\n");
}
}
---------------------------------------------------------------------
執行結果:
d
99
他們相等!
由於字符’a’的ASCII碼是97,所以它可以當作數字97來使用,這樣做有利有弊,當你見到這樣的代碼,你知道它就可以了,並不推薦你這麼去寫,以爲這並不容易立馬看懂。