繼前節所述,類者各各有其用也。夫類之相交,同類相交者,其類不變也。非同類相交者,其類必易也。何故?譬如浮點整數之相加,雖皆為數,然浮點可至整數所不可及也,相加,類或成整數,則小數不能表也。類或成浮點,則皆可表也。故浮點整數之相加,其類成浮點也。
a = 1
b = 0.1
print(a+b)
1.1
其書之有小數,推其為浮點也。推,乃為臆度云爾,非機器曉以其類也。為知其類者,辨也。即「type()」,判明變數之類以知其用也,謂型別判斷也。譬如編至累牘,以致代碼繁、變數雜,無以知其類者,辨之,茅塞頓開,知其所用也。
欲知前例之類,則置a+b
於type()
括弧內,方知物之類也。
a = 1
b = 0.1
print(type(a+b))
<class 'float'>
前上篇之類,辨之何如?列於下也。其中之for:
何耶?循環,待後節述也。
a = [0, 0.0, '', True, (), [], {}, set(), type, None]
for x in a:
print(type(x))
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'tuple'>
<class 'list'>
<class 'dict'>
<class 'set'>
<class 'type'>
<class 'NoneType'>
今有言,謂'1'
,似為數,實則言。若算加則何如?報錯也。謂言僅可銜言矣。或反其序b+a
則何如?仍報錯也。謂言與浮點弗助相加也。欲相加者,必先更其類也。更類者,類移而物不易也,謂型別轉換。或至整數以int()
,或至浮點以float()
,或至言以str()
,或云云,皆視情狀而定也,。
a = '1'
b = 0.5
print(a+b)
Traceback (most recent call last):
File "C:\Users\lin kun\OneDrive\Project\入門\變數第二\a.py", line 3, in <module>
print(a+b)
TypeError: can only concatenate str (not "float") to str
a = '1'
b = 0.5
print(b+a)
Traceback (most recent call last):
File "C:\Users\lin kun\OneDrive\Project\入門\變數第二\a.py", line 3, in <module>
print(b+a)
TypeError: unsupported operand type(s) for +: 'float' and 'str'
今言'1'
及浮點0.5
相加,更言至數也。
a = '1'
b = 0.5
print(b+int(a))
1.5