【问题标题】:Python 2.7 - Converting a single character string to an integerPython 2.7 - 将单个字符串转换为整数
【发布时间】:2016-06-04 15:35:32
【问题描述】:

我正在尝试制作一个程序,它逐行读取两个文本文件并存储您之前在 Name_Input 中指定的行(在变量行和第 2 行中),然后剥离任何不是字符串中的一个数字。

for line in Roster_Inputed:  

        if Name_Input in line: 
            line = re.sub('[^0-20]', '', line)

            if line == "1":
                print(Name_Input + " " + "should have " + line + " " + "ally.")  
                print " "  
            else:
                print(Name_Input + " " + "should have " + line + " " + "allies.")
                print " " 

    for line2 in Roster_Should_Have:
        if Name_Input in line2:
            line2 = re.sub('[^0-20]', '', line2)

            if line2 == "1":
                print(Name_Input + " " + "actually has " + line2 + " " + "ally.") 
                print " "   
            else:
                print(Name_Input + " " + "actually has " + line2 + " " + "allies.")
                print " " 

代码从两个文件中读取,其中包含名称和空格后的数字,然后继续比较它们以确定输出给用户的内容:

     if line == line2:
        print "All good"
    elif line != line2:
        print "Check " + Name_Input + "'s " + "spies"
        print " " 

我需要它做的是检查“line”的值是否大于“line2”,但是我不能这样做,因为它们是包含数字的字符串。有没有办法暂时将它们转换为整数?

【问题讨论】:

  • 这取决于你所说的“更大”是什么意思。
  • 如果字符串中的值大于另一个(实际数字)
  • 那么,字符总是数字?
  • 变量“line”和“line 2”的内容总是数字,是的。

标签: python python-2.7 char int type-conversion


【解决方案1】:

您可以使用chr()ord() 函数:

>>> chr(97)
'a'
>>> ord('a')
97

希望对你有帮助。

【讨论】:

    【解决方案2】:

    打电话给int怎么样?

    >>> int('345')
    345
    

    【讨论】:

      【解决方案3】:

      由于我现在已经确认字符将始终是整数并且整数是您想要比较的,我现在可以说使用int()

      >>> int('4')
      4
      

      在你的情况下,if int(line) > int(line2): 应该做你想做的事。由于文件通常在每行末尾都有换行符,因此您可能应该考虑使用int(line.strip())int(line2.strip())

      【讨论】:

      • 是的!非常感谢。
      猜你喜欢
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多