2016-11-16 3 views
0

По какой-то нечетной причине мой код не будет работать в Visual Studio на моем ноутбуке. Это дает мне ошибки в моем скрипте. Я делаю это неправильно?Мой скрипт не работает, не уверен, что я делаю python правильно

Ошибки я получил, были:

  • Невозможно присвоить errorexpression --line 2
  • Неожиданное отступа --line 2
  • Неожиданный маркер '< dedent >' --line 6
print("welcome user") 
varpassword = input("Please enter a password: ") 
if varpassword = "thisisthepassword123": 
    print("Welcome") 
else: 
    print("access denied") 
+0

Какова конкретная ошибка, которую вы получаете? Без этого вам будет очень сложно помочь. – Kartik

+1

Ваш условный оператор должен быть '==', а не '='. – idjaw

+0

@kartik добавил ошибки, которые я получал – TechTorch

ответ

2

В других указали, что ваш условный оператор должен использовать оператор == (чтобы указать, что вы сравниваете два значения, чтобы убедиться, что они равны) вместо =, который присваивает значение переменной.

if varpassword = "thisisthepassword123": 

Я просто хочу добавить, что следует избегать использования жестко закодированное значение пароля, особенно в питона, так как это обычный текст (если это не просто пример кода для иллюстрации)

Edit:

Используйте хеширующий алгоритм вместо хэширования вашего пароля, а затем хешируйте вход пользователя и сравните его. Таким образом, вы будете ставить пароль через что-то вроде SHA1 или так (если вы хотите использовать жесткий закодированное значение, как "thisisthepassword123" она будет иметь значение f61c1bbcf1f7d68106a18bd753d4fc3c4925793f Таким образом, используя библиотеку как hashlib (https://docs.python.org/2/library/hashlib.html) вы можете сделать это:.

import hashlib 
hashlib.sha1(userinput).hexdigest() 

Также рекомендуется использовать соление, прочитать: https://crackstation.net/hashing-security.htm

Edit 2:

Также убедитесь, что ваш отступы в сценарии совпадает с отступом фрагмент кода

+0

Что вы подразумеваете под жестким кодированием? – TechTorch

+0

@TechTorch вы сравниваете пароль с фиксированной строкой «thisisthepassword123». Таким образом, кто-то может открыть ваш файл сценария, чтобы увидеть пароль, если он захочет и обойти его. Используйте MD5, SHA1 или другой алгоритм хэширования вместо хэширования пароля. Посмотрите эту библиотеку: [link] (https://docs.python.org/2/library/hashlib.html) Я добавлю примеры кода, чтобы проиллюстрировать это на мой ответ. – CrimsonSage

+0

@TechTorch какая версия Python вы используете? – CrimsonSage

0

добавьте == для сравнения = используется для назначения