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]