Python 如何在任何循环中永久添加变量或字符串(列表或字典)?
我必须为课程的评估编写一段代码,我很难完成的要求是直接从循环中将所有房间名称存储到列表或字典中。我已经尝试过研究它,但是没有什么能真正帮助我做到这一点。由于我是python新手,我非常希望能用一种更简单的方式来解决这个问题 这是我的代码:Python 如何在任何循环中永久添加变量或字符串(列表或字典)?,python,list,dictionary,Python,List,Dictionary,我必须为课程的评估编写一段代码,我很难完成的要求是直接从循环中将所有房间名称存储到列表或字典中。我已经尝试过研究它,但是没有什么能真正帮助我做到这一点。由于我是python新手,我非常希望能用一种更简单的方式来解决这个问题 这是我的代码: print ("+++++++++++++++\nPRICE ESTIMATOR\n+++++++++++++++") roomnames={} cnumber = input("Please enter your customer number: ").u
print ("+++++++++++++++\nPRICE ESTIMATOR\n+++++++++++++++")
roomnames={}
cnumber = input("Please enter your customer number: ").upper()
dateofestimate = input("Please enter the estimated date (in the format dd/mm/yyyy) : ")
rooms = int(input("Please enter the number of rooms you would like to paint: "))
x = 0
for i in range (0,rooms):
x = x+1
print("\nFOR ROOM:", str(x))
Rname = input("Please enter a name: ")
roomnames = {(x):(Rname)}
print(roomnames)
我得到的输出如下:
FOR ROOM: 1
Please enter a name: lounge
FOR ROOM: 2
Please enter a name: kitchen
FOR ROOM: 3
Please enter a name: bedroom 1
FOR ROOM: 4
Please enter a name: bedroom 2
{4: 'bedroom 2'}
{1: 'lounge', 2: 'kitchen', 3: 'bedroom 1', 4: 'bedroom 2'}
我想存储所有房间名称及其对应的房间号,以获得如下信息:
FOR ROOM: 1
Please enter a name: lounge
FOR ROOM: 2
Please enter a name: kitchen
FOR ROOM: 3
Please enter a name: bedroom 1
FOR ROOM: 4
Please enter a name: bedroom 2
{4: 'bedroom 2'}
{1: 'lounge', 2: 'kitchen', 3: 'bedroom 1', 4: 'bedroom 2'}
如果有一种更简单的方法,比如使用列表,我也很乐意得到任何关于这方面的建议。像这样的方法也可以:
RoomsNumberAndName.append(x)
Rname = input("Please enter a name: ")
RoomsNumberAndName.append(Rname)
您可以使用如下代码:
rooms = int(input("Please enter the number of rooms you would like to paint: "))
roomandname= {i: input("Please enter a name: ") for i in range(rooms)}
下面是检查有效输入的较长代码:
#Let's first find nr (nr of rooms)
valid_nr_rooms = [str(i) for i in range(1,11)] #1-10
while True:
nr = input("Please enter the number of rooms you would like to paint (1-10): ")
if nr in valid_nr_rooms:
nr = int(nr)
break
else:
print("Invalid input")
#Now let's create a the dict
#But we could also use a list if the keys are integers!
rooms = {}
for i in range(nr):
while True:
name = input("Name of the room: ").lower()
# This checks if string only contains 1 word
# We could check if there are digits inside the word etc etc
if len(name.split()) == 1:
rooms[i] = name
break
else:
print("Invalid input")
感谢您的帮助,它成功地存储了所有变量。但是,如果我需要说出其中一个房间的号码或名字,我会怎么做。你能解释更多吗?你所说的呼出是什么意思?比如,如果我想打印一个特定的房间名或房间号,例如,如果房间2是厨房,我如何才能只打印房间2的名称?你可以将附加部分置于一个if条件下,比如输入(“你想打印这个房间名吗?”),如果是,那么就添加