#python #string #input #sys
#python #строка #ввод #sys
Вопрос:
Я действительно новичок в Python, поэтому я не очень разбираюсь в синтаксисе. Я пытаюсь написать программу, которая принимает слова в отдельных строках и добавляет каждое слово в массив. Я попытался использовать isalpha(), чтобы разорвать цикл после ввода всех слов. Но цикл прервался бы, даже если бы это было слово. Пожалуйста, помогите! Редактировать: я также хотел бы знать, как избавиться от n в выходных данных.
import sys; args = sys.argv[1:]
import fileinput
words = []
for line in fileinput.input():
if line.isalpha() == False:
fileinput.close()
words.append(line)
print (words)
Ввод: привет
Вывод: [‘hello n’]
Комментарии:
1. Какой ввод вы хотите использовать для завершения цикла?
2. Практически все, что не является словом, поэтому isalpha() должно работать.
3. isalpha : возвращает True, если все символы в строке являются алфавитными и есть хотя бы один символ, в противном случае False . Возможно, вам потребуется добавить
line = line.rstrip()
передif
оператором.4. О, хорошо, спасибо! Я попробую это сделать.
Ответ №1:
Возвращает True, если все символы в строке являются алфавитными и есть хотя бы один символ, в противном случае False .
Небольшая работа в IPython:
In [1]: 'hellon'.isalpha()
Out[1]: False
In [2]: 'hellon'.rstrip().isalpha()
Out[2]: True
Я бы исправил непосредственную проблему чем-то вроде этого:
for line in fileinput.input():
line = line.rstrip()
if line.isalpha() == False:
fileinput.close()
words.append(line)
Комментарии:
1. Большое вам спасибо! Если вы не возражаете, если я спрошу, почему он автоматически говорит n ?
2.
n
Это конец строки3. @JuminHan
n
Исходит из стандартного определения строки POSIX