[英]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.