Функция сравнения строк Python с вводом, циклом while и положением if / else - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь создать программу, которая принимает ввод от пользователя, -1 или 1 для воспроизведения или выхода, количество символов (n), два слова для сравнения (s1, s2) и вызывает эту функцию: def strNcompare (s1,s2,n) и затем печатает результат. Функция должна возвращать 0, -1,1, если n-символьная часть s1 равна, меньше или больше, чем соответствующий n-символ s2, соответственно. Так, например, если первая строка равна второй строке, она должна возвращать 0.

Цикл должен заканчиваться, когда пользователь вводит -1.

Я только начинаю на Python, поэтому код, который у меня есть, довольно грубый. Я знаю, что мне нужен оператор if / else для вывода результатов с использованием возвращаемого значения функции и цикла while для запуска программы.

Это то, что я имею до сих пор, это никоим образом не работает, но мои знания на этом заканчиваются. Я вообще не знаю, как интегрировать часть символа (n).


com = input ("String comparison [1(play), -1(quit)]: ")

while (com=='1'):
 s1 = input ("enter first string: ") 
 s2 = input ("enter second string: ") 
 n = int(input("number of characters: ")
 s1 = s1[:n]
 s1 = s2[:n]

 if com==-1:
  break

def strNcompare(s1,s2,n):
 return s1==s2

 elif s1==s2:
  print(f'{s1} is equal to {s2}')
 elif s1>s2:
  print (f'{s1} is greater than {s2}')
 elif s1<s2:
  print (f'{s1} is less than {s2}')
 else: 
  print ("QUIT")
 break 

com = input ("String comparison [1(play), -1(quit)]: ")


По состоянию на 10/05/2019 - я пересмотрел код, и теперь я получаю синтаксическую ошибку в "s1 = s1 [: n]"

1 Ответ

0 голосов
/ 04 октября 2019

это не имело особого смысла, и особенно переменная 'n' мне не совсем понятна. Я бы не стал так кодировать, но старался максимально приблизиться к вашей логике.

com = input ("String comparison [1(play), -1(quit)]: ")

while (com=='1'):
  s1 = input ("enter first string: ") 
  s2 = input ("enter second string: ") 
  n = input ("number of characters: ") #what is the purpose of this? 

  if s1==s2:
      print(f'{s1} is equal than {s2}')
  elif s1>s2:
      print (f'{s1} is greater than {s2}')
  elif s1<s2:
      print (f'{s1} is less than {s2}')
  else: 
      print ("Error")
...