Как прочитать два символа из входной строки? - PullRequest
1 голос
/ 05 марта 2020

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

Например, если я набираю H He, я хочу, чтобы он возвращал значение для H, затем определял пробел и возвращал He. Как мне это сделать?

Этот код является небольшой частью школьного задания (расчета молекулярной массы случайных соединений).

string=input('enter:')

pos=0
start=None

for a in string:
  if a == 'H':
    print(string[start:1])
  elif a == ' ':
    pos=int(string.find(' '))+1
    start=pos
    print(string[start:1])

Ответы [ 3 ]

1 голос
/ 05 марта 2020

Вы можете создать список для вводимой строки и распечатать список, как показано ниже:

string=input('enter:')
l=list(string.split())
for i in l:
   print(i)

Для вашего нового запроса

string=input('enter: ')
i=0
l=len(string)
while (i<l):
    if(i<l-1):
        if(string[i].isupper() and string[i+1].isupper()):
            print(string[i])
        elif(string[i].isupper() and string[i+1].islower()):
            print('{}{}'.format(string[i],string[i+1]))
    elif(i==l-1 and string[i].isupper()):
        print(string[i])
    i=i+1
1 голос
/ 05 марта 2020

Вы можете разделить строку пробелом и затем получить оба значения.

string=input('enter:')

values = string.split(' ')
if len(values) > 1:
    print("first char:", values[0])
    print("remaining:", values[1])
else:
    print("first char: ", values[0])

Чтобы разделить строку без пробелов на основе заглавной буквы.

import re
elements = re.findall('[A-Z][^A-Z]*', 'NaCl')
print(elements)
0 голосов
/ 05 марта 2020

Кроме того, мне было интересно, можно ли сделать то же самое, но разделить строчными буквами?

Например, читать «HHe» как «H», «He» или «NaCl» as 'Na', 'Cl' Извините, это немного selfi sh, но мне было интересно, что это можно сделать

Как насчет этого?

import re

words = [
    'HHe',
    'NaCl',
]

pattern = re.compile(r'[A-Z][a-z]*')
for word in words:
    print(pattern.findall(word))

output:

['H', 'He']
['Na', 'Cl']
...