Python 2.7 获取用户输入并以不带引号的字符串形式进行操作

2025-01-17 09:22:00
admin
原创
151
摘要:问题描述:我想从用户那里获取一个字符串,然后对其进行操作。testVar = input("Ask user for something.") 有没有办法让 testVar 成为字符串,而无需用户在引号中输入他的回答?例如“Hello”与 Hello如果用户输入Hello,我会收到以下错误...

问题描述:

我想从用户那里获取一个字符串,然后对其进行操作。

testVar = input("Ask user for something.")

有没有办法让 testVar 成为字符串,而无需用户在引号中输入他的回答?例如“Hello”与 Hello

如果用户输入Hello,我会收到以下错误:

NameError:名称“Hello”未定义


解决方案 1:

使用raw_input()而不是input()

testVar = raw_input("Ask user for something.")

input()实际上将输入作为 Python 代码进行评估。我建议永远不要使用它。 raw_input()返回用户输入的逐字字符串。

解决方案 2:

该函数input还将把刚刚读取的数据评估为 Python 代码,但这并不是您真正想要的。

通用方法是将用户输入(来自sys.stdin)视为任何其他文件。尝试

import sys
sys.stdin.readline()

如果想简短些,可以使用raw_input与之相同input但省略求值的操作。

解决方案 3:

raw_input()我们可以在 Python 2 中使用该函数,也可以input()在 Python 3 中使用该函数。默认情况下,输入函数接受字符串格式的输入。对于其他数据类型,您必须转换用户输入。

在 Python 2 中,我们使用raw_input()函数。它等待用户输入一些内容并按下return,我们需要通过转换为所需的数据类型将值存储在变量中。使用类型转换时要小心

x = raw_input("Enter a number: ") #String input

x = int(raw_input("Enter a number: ")) #integer input

x = float(raw_input("Enter a float number: ")) #float input

x = eval(raw_input("Enter a float number: ")) #eval input

在 Python 3 中,我们使用 input() 函数返回用户输入值。

x = input("Enter a number: ") #String input

如果你输入一个字符串、整数、浮点数、eval,它将作为字符串输入

x = int(input("Enter a number: ")) #integer input

如果你输入一个字符串进行 int 转换ValueError: invalid literal for int() with base 10:

x = float(input("Enter a float number: ")) #float input

如果你输入一个字符串进行浮点转换ValueError: could not convert string to float

x = eval(input("Enter a float number: ")) #eval input

如果输入一个字符串进行 eval cast,NameError: name ' ' is not defined
这些错误也适用于 Python 2。

解决方案 4:

如果你想在 python 2.x 中使用 input 而不是 raw_input,那么这个技巧会派上用场

    if hasattr(__builtins__, 'raw_input'):
      input=raw_input

之后,

testVar = input("Ask user for something.")

就可以正常工作。

解决方案 5:

testVar = raw_input("Ask user for something.")

解决方案 6:

我的工作代码已修复:

import random
import math
print "Welcome to Sam's Math Test"
num1= random.randint(1, 10)
num2= random.randint(1, 10)
num3= random.randint(1, 10)
list=[num1, num2, num3]
maxNum= max(list)
minNum= min(list)
sqrtOne= math.sqrt(num1)

correct= False
while(correct == False):
    guess1= input("Which number is the highest? "+ str(list) + ": ")
    if maxNum == guess1:
        print("Correct!")
        correct = True
    else:
        print("Incorrect, try again")

correct= False
while(correct == False):
guess2= input("Which number is the lowest? " + str(list) +": ")
if minNum == guess2:
     print("Correct!")
     correct = True
else:
    print("Incorrect, try again")

correct= False
while(correct == False):
    guess3= raw_input("Is the square root of " + str(num1) + " greater than or equal to 2? (y/n): ")
    if sqrtOne >= 2.0 and str(guess3) == "y":
        print("Correct!")
        correct = True
    elif sqrtOne < 2.0 and str(guess3) == "n":
        print("Correct!")
        correct = True
    else:
        print("Incorrect, try again")

print("Thanks for playing!")

解决方案 7:

这是我为防止将来需要迁移到 Python 3 而采取的安全措施。

def _input(msg):
  return raw_input(msg)

解决方案 8:

该问题似乎已在 Python 版本 3.4.2 中得到解决。

testVar = input("Ask user for something.")

会正常工作。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3101  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1882  
  产品生命周期管理(PLM)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力至关重要。在实际的PLM项目推进过程中,单一的管理模式往往难以满足复杂多变的需求,混合管理模式应运而生。混合管理模式融合了多种管理理念与方法的优势,能够更好地应对PLM项目中的各种挑战。接下来,我们将深入探讨PLM项目中混合管理模式的...
plm流程是什么   6  
  项目风险的有效管理对于项目的成功至关重要。PLM(产品生命周期管理)系统作为一种强大的工具,在项目风险管理中发挥着关键作用。通过合理运用PLM系统的功能,能够准确识别、评估和应对项目中的各种风险,确保项目按计划推进,达成预期目标。PLM系统在项目风险管理中的角色定位PLM系统贯穿于产品从概念设计到退役的整个生命周期。在...
plm软件有哪些   5  
  虚拟团队协作在当今的项目运作中愈发重要,PLM(产品生命周期管理)系统作为强大的管理工具,能为虚拟团队协作提供多方面支持。通过一系列有效的沟通工具,PLM系统可以打破地理、时间等限制,提升团队协作效率,确保项目顺利推进。以下将详细介绍PLM系统支持虚拟团队协作的6个沟通工具。即时通讯工具即时通讯工具是PLM系统中促进团...
plm系统有什么功能和意义   6  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用