用数字python乘以字符串

时间:2015-04-09 17:52:41

标签: python

所以我有一个程序,它接受一个参数,一个整数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

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