我试图创建中间方形pseaudorandom数字生成器(它基本上接受输入,获取输入中间的数字并对其进行平方,即:1234 - > 23 ^ 2)
这是我的代码,我得到了' int'对象不是第6行的可订阅错误:
middle = 0
def get_middle():
x = 1
y = int(input('type a number: '))
middle = str(y[x:y-2])
return middle
get_middle()
result = middle * middle
print(result)
我试着把数字的长度从中间切出来。
答案 0 :(得分:2)
strval = input('type a number: ')
intval = int(strval)
middle = strval[x:intval-2]
return int(middle)
答案 1 :(得分:0)
您使用y
作为切片的str
和减法的int
,您应该使用两个单独的变量。
x = 1
val = input('type a number: ')
y = int(val)
middle = val[x:y-2])
答案 2 :(得分:0)
在不知道你的意思的情况下," number in the middle
",我只是假设您想要切断第一个和最后一个字符。现在,如果你真的只想要中间数字,或者在偶数长度的情况下只需要2位数,那么它看起来更像是第二个函数。
def get_middle(input_string):
middle = input_string[1:-1]
return int(middle)
def get_very_middle(input_string):
if len(input_string) % 2 == 0:
index = int(len(input_string) // 2)
else:
index = int(len(input_string) // 2) + 1
middle = input_string[index-1:-(index-1)]
return int(middle)
y = "0"
while len(y) < 3:
y = input('type a number, with more than 3 digits: ')
inty = int(y)
middle = get_middle(y)
print(middle)
result = middle * middle
print(result)
print("The very middle:")
middle = get_very_middle(y)
print(middle)
result = middle * middle
print(result)
我也打印出中间的数字,这样你就可以准确地看到你在做什么。