[英]How do you convert a string to an integer in Python
“”“三態數是一個數字,其立方體以數字本身結尾。
例如:
Input: 4
Output: true (4^3 is 64, which ends in 4)
Input: 24
Output: true (24^3 = 13824)
Input: 249
Output: true (249^3 = 15438249)
編寫程序以檢查用戶輸入是否為三態數。 “””
num = int(input("Enter a number:"))
print(num)
num_cube = pow(num, 3)
str(num_cube)
print(num_cube[len(num_cube) - 1:] == num)
我嘗試運行代碼,盡管將變量num_cube轉換為字符串以對其進行切片,但在第22行(最后一行)卻遇到TypeError。 為什么不起作用?
str(num_cube)
未分配,因此您正在轉換它,但仍使用num_cube
它是一個整數),因此使用TypeError
。 另外,你需要將其與另一個字符串,不向num
這是另一個整數:
print(str(num_cube)[-3:] == str(num))
您應該使用endswith函數檢查多維數據集中的最后“ n”個字符是否等於所傳遞數字的字符串表示形式。
因此,您可以這樣做:
print(str(num_cube).endswith(num))
您當前實現它的方式是對“從標准輸入”讀取的數字的預期長度進行“硬編碼”,並因此假設其始終為長度1。
要更正您的代碼,請執行以下操作:
>>> num = "24"
>>> num_cube = str(pow(int(num), 3))
>>> num_cube[len(num_cube) - len(num):] == num
True
>>> num_cube[-len(num):] == num # negative indexing
True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.