Использование условия оператора if для просмотра нулевого пользовательского ввода и печати: «sometext …»

#python #if-statement #while-loop

#python #if-statement #цикл while

Вопрос:

Python с его отступами и отсутствием точек с запятой и скобок требует некоторого времени, чтобы я привык к … исходящему из C . Я уверен, что это легко исправить, но, похоже, я не могу найти проблему. Мы высоко ценим вашу помощь. Вот что у меня есть. Когда я запускаю этот код, он действует так, как будто второй оператор ‘if’ не существует. Даже если я закомментирую первый оператор ‘if’, строка печати во втором операторе ‘if’ никогда не выводится на экран:

 import re


while True:
   stringName = raw_input("Convert string to hex amp; ascii(type stop to quit): ").strip()
   if stringName == 'stop':
      break
   if stringName is None: print "You must enter some text to proceed!"

   print "Hex value: ", stringName.encode('hex')
   print "ASCII value: ", ', '.join(str(ord(c)) for c in stringName) 
  

Ответ №1:

Возвращаемое значение raw_input() всегда является строкой, и никогда None . Если вы хотите проверить наличие пустой строки "" , вы можете использовать

 if not string_name:
    # whatever
  

Ответ №2:

raw_input всегда возвращает строку и никогда None . Ознакомьтесь с raw_input справкой.

raw_input([приглашение]) -> строка

Прочитайте строку из стандартного ввода. Завершающая новая строка удалена. Если пользователь нажимает EOF (Unix: Ctl-D, Windows: Ctl-Z Return), вызовите EOFError. В Unix используется GNU readline, если она включена. Строка запроса, если она задана, печатается без перевода строки в конце перед чтением.