Почему строка 'andy' не печатается, пожалуйста, введите новое имя пользователя? - PullRequest
1 голос
/ 20 февраля 2020
current_users = ['Andy', 'Brett', 'Cassie', 'Derek', 'Eric']
new_users = ['eric', 'greg', 'hank', 'ian', 'john', 'andy', 'frank']
new_users.sort()

for current_user in current_users:
    current_user = current_user.lower()

for new_user in new_users:
    if new_user == current_user:
        print(f"\n{new_user}, Please enter a new username!")
    else:
        print(f"\n{new_user}, Username is available.")

Энди печатается, так как имя пользователя доступно. Также, пожалуйста, помогите мне упростить, поскольку я только учусь python.

Ответы [ 3 ]

2 голосов
/ 20 февраля 2020

Вы можете использовать понимание списка для преобразования имен пользователей в current_users в lowercase. Во-вторых, вы должны проверить, присутствует ли new_user в current_users, для этого нужно использовать ключевое слово in. 1008 *

ключевое слово in 1011 * проверяет, содержит ли последовательность определенное значение. вот код, current_users = ['Andy', 'Brett', 'Cassie', 'Derek', 'Eric'] new_users = ['eric', 'greg', 'hank', 'ian', 'john', 'andy', 'frank'] new_users.sort() current_users = [user.lower() for user in current_users] for new_user in new_users: if new_user in current_users: print(f"\n{new_user}, Please enter a new username!") else: print(f"\n{new_user}, Username is available.") Надеюсь, это поможет!

1 голос
/ 20 февраля 2020

Вы должны попробовать использовать in для списка:

current_users = ['Andy', 'Brett', 'Cassie', 'Derek', 'Eric']
new_users = ['eric', 'greg', 'hank', 'ian', 'john', 'andy', 'frank']
new_users.sort()

current_users = [i.lower() for i in current_users]

for new_user in new_users:
    if new_user in current_users:
        print(f"\n{new_user}, Please enter a new username!")
    else:
        print(f"\n{new_user}, Username is available.")
0 голосов
/ 20 февраля 2020

один знак равенства используется для присвоения значения переменной, тогда как два последовательных знака равенства используются для проверки, дают ли два выражения одинаковое значение.

= является оператором присваивания

== является оператором равенства

current_users = ['Andy', 'Brett', 'Cassie', 'Derek', 'Eric']
new_users = ['eric', 'greg', 'hank', 'ian', 'john', 'andy', 'frank']
new_users.sort()

for current_user in current_users:
    current_user == current_user.lower()

for new_user in new_users:
    if new_user == current_user:
        print(f"\n{new_user}, Please enter a new username!")
    else:
        print(f"\n{new_user}, Username is available.")
...