2014-11-06 127 views
0

我想获取用户输入作为我的函数参数。我这样做:字符串python中额外的''字符

Utilities.py

def EnterVersion() 
    gVer = "" 
    tgVer = "" 
    while True: 
      gVer = input(" Enter game version : ") 
      if gVer ='': 
      tgVer = tgVer[:-1] 
      break 
      else: 
      gVer = '\'' + gVer + '\'' + ',' 
      tgVer += gVer 

    tgVer = "\"(%s)\""%tgVer 
    print(tgVer) 
    return tgVer 

a.py

game_version = "" 

def getGameVersion() 
    game_version = utilities.EnterVersion() 
    return game_version 

当用户输入这样的:

进入游戏版本: 1
E NTER游戏版本:2

编辑:
我使用VS为Python
从脚本的输出(在命令行中)好:

“( '1',” 2' )”

但是,当我把手表放在变量,它去这样:
enter image description here

的输出将是这样的:

“(\ '1 \',\ '2 \')”

没有额外 '\' 就可以了。

因此,鉴于输入我的查询(我正在使用熊猫)没有运行。

因为它读出的游戏版本:

'\ 1' \和 '\ 2 \',或
\ '1 \' 和\ '2 \'

我知道'\'用于在python中编写特殊字符。
但为什么我在我的?
任何人都可以向我解释为什么我的字符串上有额外的'\'?下面python2.7

+1

你的代码编译? (它没有给我)。 这行看起来不对,'gVer ='\''+ gVer +'\''+',' ' – smushi 2014-11-06 06:57:35

+0

嗯, 是的,我可以编译它。 我使用的版本是3.3.2 – noobsee 2014-11-06 07:10:06

+1

@smushi用'raw_input()'替换'input()' – 2014-11-06 07:11:27

回答

0

当我尝试运行它时,您的代码会产生语法错误。并且它也是你的预期输出而不用改变代码。

def EnterVersion(): 
    gVer = "" 
    tgVer = "" 
    while True: 
      gVer = input(" Enter game version : ") 
      if gVer =='': 
      tgVer = tgVer[:-1] 
      break 
      else: 
      gVer = '\'' + gVer + '\'' + ',' 
      tgVer += gVer 

    tgVer = "\"(%s)\""%tgVer 
    print(tgVer) 
    return tgVer 


if __name__ == "__main__": 
    game_version = EnterVersion() 
    print(game_version) 
+0

它的输出是什么? – noobsee 2014-11-06 07:12:57

+0

“('5','5')”这是从python3.3输出的 – 2014-11-06 07:22:26

+0

是的,我编辑了我的问题。 :)) – noobsee 2014-11-06 07:32:09

0

运行的代码会确定:

def EnterVersion(): 
    gVer = "" 
    tgVer = "" 
    while True: 
      gVer = raw_input(" Enter game version : ") #use raw_input here 
      if gVer == '': 
      tgVer = tgVer[:-1] 
      break 
      else: 
      gVer = '\'' + gVer + '\'' + ',' 
      tgVer += gVer 

    tgVer = "\"(%s)\""%tgVer 
    print(tgVer) 
    return tgVer 

结果:

Enter game version : 2 
Enter game version : 4 
Enter game version : 1 
Enter game version : 2 
Enter game version : 
"('2','4','1','2')" 

编辑:您所做的一切都很好!但是你不应该在调试模式下看到结果,因为它使用了代码中表示的字符串,而不是真正的输出。即如果在调试模式下看到​​,并且实际输出字符串为abc,如果在调试模式下看到“\'hi \'”,则真正输出的字符串将是'hi',这没关系!

+0

我使用的版本3.3 .2。 啊,是的,对不起,我把你们全部弄错了方向。要更新 – noobsee 2014-11-06 07:14:16

+0

@noobsee看到我的编辑,你的代码还行,但是你把代表字符串和实际的输出字符串混淆了 – tianwei 2014-11-06 07:28:08

+0

啊,我找到了! !..在EnterVersion()我把额外的“”“所以它错误..这不是因为'\' – noobsee 2014-11-06 09:16:59