infinite tech
infinite tech

Reputation: 9

Appending to list produces None

Code:

for a in range(1,n+1):
    name = input("Enter name of passenger ")
    age = int(input("Enter age of passenger"))
    sex = input("Enter sex of passenger")
    lis= [name,age,sex]
    passengers = passengers.append(lis)

print("All passengers are :")
print(passengers)

I have tried this to make a ticket making software, but the names of passengers are not getting added to passengers list. The result shown is None.

Upvotes: 0

Views: 50

Answers (2)

Kasem Alsharaa
Kasem Alsharaa

Reputation: 920

The return value of .append() is None. Which is what you're assigning to your variable.

What you'd want instead is to define your passengers prior to your loop then append to it as follows

passengers = []
for a in range(1,n+1):
    name = input("Enter name of passenger ")
    age = int(input("Enter age of passenger"))
    sex = input("Enter sex of passenger")
    lis=[name,age,sex]
    passengers.append(lis)

print("All passengers are :")
print(passengers)

Upvotes: 0

You are assigning the result of append() to the passengers variable but append() returns None. Simply remove the assignment:

for a in range(1,n+1):
    name = input("Enter name of passenger ")
    age = int(input("Enter age of passenger"))
    sex = input("Enter sex of passenger")
    lis= [name,age,sex]
    passengers.append(lis)

Upvotes: 2

Related Questions