如何创建接受字符串并在字符串等于“ one”时转换为int的函数

时间:2019-03-29 23:43:42

标签: python

我有一个看起来像这样的函数:

def test(in1):

  if in2 = 151:
    print('error')


  if in2 == 1:
    in1 = 14
    print(in1)

该函数当前采用字符串值

我在想:

if in2 == 'one':
   in2 = 14

但是由于某些原因,这不起作用

谢谢

4 个答案:

答案 0 :(得分:0)

您只想要以下内容吗?

if in2 == 'one':
    in2 = 1

答案 1 :(得分:0)

您正尝试将@can('view user', $lead) <button>view</button> @endcan 转换为一个无效的整数,因为python不知道单词one是指整数1。您需要做的是放在'one'中在您的if语句正文中。

in2 = 1

答案 2 :(得分:0)

它不起作用,因为int转换仅适用于整数 numeral 的字符串图像。 int("1")可以工作。

Python没有内置函数将文本字符串转换为数字。您将需要为其提供某种您自己的转换功能。在您提供的受限制的示例中,这仅仅是

if in2 = "one":
    in2 = 1

但是,您似乎想要一个更通用的解决方案。通常,您可以找到一些将数字短语转换为整数的程序。现在,您可能只需要一个查询表。 dict为此很好。

str_to_int = {
      "one": 1, "two": 2, "three":3,      # Continue as far as you need
    }

现在,您可以执行类似的操作

if in2 in str_to_int:
    in2 = str_to_int[in2]

这仍然是一个笨拙的编程,因为它在出错情况下几乎没有作用,并且您已经将一个变量用于两个不同的目的-从名称上都看不出来。但是,解决所有这些问题将涉及大修,您可以根据自己的时间更好地完成。

答案 3 :(得分:-1)

guide_colorbar

这应该起作用,因为您有一个预定义的数字列表,但已明确说明。如果您的函数参数等于此列表中的字符串,它将以整数形式从数字列表中获得相应的整数并返回。