首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用字典的情况下将字符串转换为python中的变量?

如何在不使用字典的情况下将字符串转换为python中的变量?
EN

Stack Overflow用户
提问于 2021-02-23 15:21:30
回答 1查看 49关注 0票数 0

在我的代码中,我有变量,例如Up1、Up2 .....so on。这与买火车票有关。用户以整数的形式输入时间,如下图所示,但不是以(hh:mm)的形式输入,我希望python接受用户的整数输入,将其附加字符串‘Up’(这里是整数)来创建上面提到的变量,例如9:00的Up9,现在python需要找到该特定列车的座位数,并比较用户输入的座位是否在可用的座位范围内。但是,在行中(而Tickets_to_buy > Uptime_:),Uptime_是一个字符串,python拒绝它。如何将这个str(Uptime_)转换成一个变量名,而不是str(Up9),它将变成一个变量(Up9),并且python获取它的值来与其他变量进行比较.

代码语言:javascript
复制
Uptime = int(input('''Please enter the time of uptime from below:
    9 for 09:00
    1 for 11:00
    3 for 03:00
    5 for 15:00'''))
Downtime = int(input('''Please enter the time of downtime from below:
    0 for 10:00
    2 for 12:00
    4 for 14:00
    6 for 16:00'''))

Uptime_ = ('UP' + str(Uptime))

Tickets_to_buy = 0

while Tickets_to_buy > Uptime_:
    Tickets_to_buy = int(input('Please enter number of tickets you would like to buy. It should be less than', Uptime_)) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-23 16:11:51

不知道你为什么不喜欢字典..。但是您也可以在这里使用元组:

您现在有了变量:

代码语言:javascript
复制
UP1 = varFor1
UP9 = varFor9

相反,让一个元组与您的用户输入直接相关:

代码语言:javascript
复制
varList = ((9, varFor9), (1, varFor1))

在您的代码中,现在只需更改将Uptime_设置为:

代码语言:javascript
复制
for each in varList:
     if each[0] = Uptime:
          Uptime_ = each[1]

话虽如此,如果您将变量输出设置为字典:

代码语言:javascript
复制
varList = { 9 : "varFor9", 1 : "varFor1" }

您可以做同样的事情,但是仍然可以在一行中分配Uptime_:

代码语言:javascript
复制
Uptime_ = varList[Uptime]

而且,每当您使用用户输入时,您都可能希望尝试/除非在尝试执行输入的地方,以防止出现胖手指,或者输入一个您不想要/期望的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66335947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档