2017-09-28 70 views
-4

我創造了這個功能: generate_seat_number(movie_index,number_of_tickets)如何在python中自動生成數字?

,我需要自動生成從1開始的由M前綴,所以像「M1-1」電影1座位號,「M1-2 「,」M1-3「等,但我不確定如何做到這一點。

我會用一個for循環?

回答

1

剛剛嘗試類似如下:

seat_numbers = ["M1-"+ str(i) for i in range(1, 101)] 
1

如果你正在使用Python 3.6及更高版本,可以使用fstrings

[f'M1-{i}' for i in range(1, 11)] 

如果你有功能癢,

list(map(lambda i: f'M1-{i}', range(1, 11))) 
+0

'由於它使用列表推導,所以答案會更快。 – bR3nD4n

1

由於問題不是超清晰,我可以摹有幾個版本可能有效,具體取決於你回來的內容。

原子通話情況:

def generate_seat_number(idx, num): 
    return "M{}-{}".format(idx, i) 

列表返回到調用者:

def generate_seat_number(idx, num): 
    ret_list = [] 
    # 1 because humans don't start at 0 
    # num+1 because range is not inclusive 
    for i in range(1,num + 1): 
    ret_list.append("M{}-{}".format(idx, i)) 
    return ret_list 

發電機情況:

def generate_seat_number(idx, num): 
    for i in range(1, num+1): 
    yield "M{}-{}".format(idx, i) 

希望這有助於。如果您需要更多幫助,請留下評論。

0

這應該工作:

NUMBER_OF_SEATS = 10個

NUMBER_OF_ROWS = 5

行= 0

在範圍X(0,NUMBER_OF_ROWS):

row += 1 

seats_left = number_of_seats - 1 

for x in range (0, number_of_seats): 

    print("M" + str(row) + "-" + str(number_of_seats - seats_left)) 

    seats_left -= 1