Python 如果字符串等于',如何创建接受字符串并转换为int的函数;一个';

Python 如果字符串等于',如何创建接受字符串并转换为int的函数;一个';,python,Python,我有一个函数如下所示: def test(in1): if in2 = 151: print('error') if in2 == 1: in1 = 14 print(in1) 函数当前接受一个字符串值 我在想: if in2 == 'one': in2 = 14 但出于某种原因,这是行不通的 谢谢您只需要以下内容吗 if in2 == 'one': in2 = 1 这应该行得通,因为您有一个预定义的数字列表,但需要详细说明。如果您的函数

我有一个函数如下所示:

def test(in1):

  if in2 = 151:
    print('error')


  if in2 == 1:
    in1 = 14
    print(in1)
函数当前接受一个字符串值

我在想:

if in2 == 'one':
   in2 = 14
但出于某种原因,这是行不通的


谢谢

您只需要以下内容吗

if in2 == 'one':
    in2 = 1

这应该行得通,因为您有一个预定义的数字列表,但需要详细说明。如果您的函数参数等于此列表中的字符串,它将从整数形式的数字列表中获取相应的整数并返回它。

您试图将
'one'
转换为一个整数,但该整数不起作用,因为python不知道单词one指的是整数1。您需要做的是将
in2=1
放在if语句的主体中

if in2 == 'one':
       in2 = 1

它不起作用,因为
int
转换只对整数的字符串图像起作用
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]

这仍然是一个笨拙的编程,因为它很少处理错误情况,并且您使用了一个变量用于两个不同的目的——从名称上看,这两个目的都不明显。但是,解决所有这些问题都需要大修,最好在您自己的时间内完成。

但是您没有测试字符串的值是否为
'one'
?另外,要测试
int
是否使用
isinstance(in2,int)
请参见下面的回复…您不需要将“1”转换为1,您只需直接将值1赋给变量即可。@jackiegirl89您必须编写一个dict来执行此操作。我想不出任何其他方法,只有一个dict,key是字符串,value是int。假设你想要的是能够将写的数字转换成整数。@SuperShoot:谢谢你找到这个。我记得的唯一重复是在爪哇和C++;我找不到这个。这不是对手头问题的真正答案。我不同意。我谈到了为什么他们当前的代码不起作用,以及他们如何实现他们在帖子中明确提出的要求。这并不是对手头问题的真正回答。这是试图回答并帮助回答一个没有明确说明的问题,但你的评论对任何人都没有帮助
if in2 in str_to_int:
    in2 = str_to_int[in2]