gpt4 book ai didi

python - 我如何正确使用 isinstance()

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:30 26 4
gpt4 key购买 nike

def convBin():
cont = []
rest = []
dev = []
decimal = []

print("Give me a number: ")
valor = input()

if isinstance(valor, int):
while valor > 0:
z = valor // 2
resto = x%2
valor = valor // 2
cont.append(z)
rest.append(resto)

cont.reverse()
rest.pop()

dev.append(cont[1])

for i in rest:
dev.append(rest[i])

print(" ")
print("Lista de devoluciones: ")
print(dev)
print("")

elif isinstance(valor, float):
a = valor // 1
b = valor % 1

while a > 0:
z = a // 2
resto = a%2
a = a // 2
cont.append(z)
rest.append(resto)

cont.reverse()
rest.pop()

dev.append(cont[1])

for i in rest:
dev.append(rest[i])

print("How many decimals do you want?")
num = input()

while num > 0:
dec = b * 1
dec2 = dec//1
dec %= 1
decimal.append(dec2)


print("Full part: ")
print(dev)
print("Decimal part:")
print(num)

else:
print("An error has appeared")

我是自学Python的,所以我知道我的代码有很大的错误。欢迎任何建议。

此代码用于二进制转换器。

isinstance() 有问题。当我尝试代码时,在通过键盘读取的那一刻,它忽略了“if”并直接转到“else”。

例如:

  1. It asks you a number.
2. It goes to the first if and compare the x type with int(for some reason it is false).
3. It goes to the `elif` and does the same(check if its float).
4. Both are false so it goes to else and prints the error.

最佳答案

您可以使用 ast.literal_eval() 代替将 input() 函数返回的字符串解析为字符串内容表示的对象,以便你可以使用 isinstance() 来测试你想要的类型:

import ast
while True:
try:
valor = ast.literal_eval(input("Give me a number: "))
break
except SyntaxError, ValueError:
print("Please enter a valid number.")

关于python - 我如何正确使用 isinstance(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com