標籤:for 個數 pytho bsp random rand rac mod last
奶奶的報了這個錯,我以為可以像java中字串加數位嘛
Traceback (most recent call last):
File "./number.py", line 13, in <module>
print("你懂得: " + 2**10)
TypeError: must be str, not int
踩了了個坑
首先強調一點的是,python是強型別的語言,如果你把一個字串和數字直接做串連的操作的話,會報錯:
TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘
如果你要數字和字串串連的話,可以把數字通過str的方法轉換成字串的形式,然後再做串連的操作。
比如c = str(a) + b
我的媽,python是強語言類型,為啥不重載加號捏
這裡又有一個點可以展開講
儘管str(),repr()和``運算在特性和功能方面都非常相似,事實上repr()和``做的是完全一樣的事情,它們返回的是一個對象的"官方"字串表示,也就是說絕大多數情況下可以通過求值運算(使用內建函數eval())重新得到該對象。
練習指令碼number.py
#!/usr/bin/python# 突然邪惡地想了一下, py是個好邪惡的詞# 趕快棄python去py吧# python中包含的數有: 整數、浮點數、複數、固定精度的十進位數、帶分子和分母的有理數# 支援的運算有: +表示加法、*表示乘法、**表示乘方print(123+222) # 兩個數直接相加print(1.5 * 4)print("你懂得: " + str(2**10)) # 注意這個非字串類型要用str處理一下, 不然會報錯print("python不用寫分號, 所以你隨意寫, 剛開始可能會不習慣的")print(2**100) # python會幫你處理這種情況的# print(len(str( 2 ** 1000000))) # 這他媽都不溢出, 有興趣你可以執行一下, 比較耗時3.1415 * 2print(3.1415 * 2)print(repr(3.1415 * 2)) # repr是資料的一種內在表示吧import math # 這個是引入python中的模組, Crowdsourced Security Testing道這樣寫就可以了print(math.pi)print(math.sqrt(85))import randomprint(random.random())print(random.choice([1, 2, 3, 4])) # 見名知意啊# end 大概數字就這麼寫用法吧
python學習(三)數字類型樣本