所以我有一个程序,它接受一个参数,一个整数num。它应该返回一个重复数字3次的数字。如果参数不是整数,则函数应返回None。
例如:
对于输入参数" hello!",它应该返回None,因为输入参数是一个字符串。
对于输入参数" 23",它应该返回None,因为输入参数是一个字符串。
对于输入参数12.34,它应该返回None,因为输入参数是float。
对于输入参数1,它应该返回111或参数241,它应该返回241241241。
我不知道我在自己身上做错了什么,任何帮助都会受到赞赏!
def repeat_number(num):
if num is type(str) and type(float):
return None
else:
return str(num) * 3
答案 0 :(得分:3)
你很亲密。这里有两个不同的问题。
首先,你真的不应该输入check(鸭子打字),但是如果你必须,那就做吧:
if not isinstance(num, int):
return None
如果参数不是整数,则返回None
。至于实际重复数字,你只需要将字符串转回一个数字:
return int(str(num) * 3)
完整代码:
def repeat_number(num):
if not isinstance(num, int):
return None
else:
return int(str(num) * 3)
答案 1 :(得分:1)
要检查变量的类型,您应该使用isinstance
def repeat_number(num):
if isinstance(num, int):
return int(str(num) * 3)
else:
return None
>>> repeat_number(241)
241241241
答案 2 :(得分:0)
试试这个语法
if type(num) is int or type(num) is float:
return None
else:
return str(num) * 3