Подсчитайте количество символов без len() и объедините переменные

Q1

Напишите код, объединяющий следующие переменные, чтобы фраза «Вы отлично справляетесь, продолжайте в том же духе!» присваивается переменной message. Не редактируйте значения, присвоенные a, b, c или d.

Q2

Подсчитайте количество символов в строке str1. Не используйте len(). Сохраните число в переменной numbs

Я пробовал некоторые решения, как показано ниже. Интересно, есть ли более быстрый способ решить эту проблему?

Q1

a = "You are"
b = "doing a great "
c = "job"
d = "keep it up!"


seq1 = [a, b]
seq2 = " ".join(seq1+[c])
message = ",".join(seq2 + [d])

Есть ли более простой способ справиться с проблемой? Надеюсь, я не хардкодинг, лол.

Q2

str1 = "I like nonsense, it wakes up the brain cells. Fantasy is a necessary ingredient in living."

list1 = list(str1)
print(list1)
numbs = count(list1)

print(numbs)

Должен ли я использовать такую ​​функцию подсчета в коде? Существуют ли какие-либо модули или функции, которые я мог бы применить? как функция цикла или функция счетчика?

Заранее спасибо!

Q1 также можно решить с помощью форматирование строки: message = f"{a} {b}{c}, {d}" (требуется python >= 3.6). иначе: message = "{} {}{}, {}".format(a, b,c, d).

hiro protagonist 10.04.2019 15:51

Где функция подсчета, которую вы использовали во второй части?

Holloway 10.04.2019 15:52

Технически len и __len__ разные, так что можно сделать numbs = str1.__len__()

C. Braun 10.04.2019 15:58
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
7 118
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Для Q1 существуют различные стили форматирование строки. Самый последний (python 3.6)

result = f'{a} {b}, {c} {d}'

По длине строки повторяются в python, поэтому

length = 0
for character in string:
   length += 1

или понимание списка

length = sum(1 for char in string)

У меня есть еще один вопрос. Я собираюсь вычислить сумму итерируемого списка от 0 до 40/, поэтому я набираю sum1 = sum(1 для числа в числах). Но получается 40 вместо 820. В чем проблема?

CieloAzul 10.04.2019 17:05

пиши просто sum(iterable). мой пример подсчитывает 1 для каждого элемента (поскольку вы хотели длину)

blue_note 10.04.2019 17:17
for i,c in enumerate( yoursting ):
    pass

print(i+1)

должен сделать трюк. он будет увеличивать контрпеременную i на каждой итерации, поэтому, наконец, она будет равна длине вашей строки. так как он начинается с 0, вам нужно добавить 1 в конце

Вы можете добавлять строки вместе в python, чтобы вы могли просто добавить их

a+' '+b+c+' '+d

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

counter=0
for i in str1:
    counter+=1

Q1: Вы можете использовать функцию форматирования строки. Он использует заполнители и переменные.

'{0} {1} {2}, {3}'.format(a,b,c,d)

Q2: Вы можете перебирать каждый элемент строки и увеличивать счетчик. Это не лучший способ, но один из них.

a = 0
[a+=1 for _ in str1]

Ответы только на код не будут поддерживать процесс обучения автора вопроса, который является частью миссии SO. Было бы признательно, если бы вы добавили пояснение к вашему коду.

nircraft 10.04.2019 16:12

Q1

by = "You are"
az = "doing a great "
io = "job"
qy = "keep it up!"
message = by+" "+az+io+", "+qy
print(message)

Q2

str1 = "I like nonsense, it wakes up the brain cells. Fantasy is a necessary ingredient in living."
numbs=0
for i in str1:
    numbs+=1
print(numbs)

Другие вопросы по теме