Напишите код, объединяющий следующие переменные, чтобы фраза «Вы отлично справляетесь, продолжайте в том же духе!» присваивается переменной message. Не редактируйте значения, присвоенные a, b, c или d.
Подсчитайте количество символов в строке str1. Не используйте len(). Сохраните число в переменной numbs
Я пробовал некоторые решения, как показано ниже. Интересно, есть ли более быстрый способ решить эту проблему?
a = "You are"
b = "doing a great "
c = "job"
d = "keep it up!"
seq1 = [a, b]
seq2 = " ".join(seq1+[c])
message = ",".join(seq2 + [d])
Есть ли более простой способ справиться с проблемой? Надеюсь, я не хардкодинг, лол.
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)
Должен ли я использовать такую функцию подсчета в коде? Существуют ли какие-либо модули или функции, которые я мог бы применить? как функция цикла или функция счетчика?
Заранее спасибо!
Где функция подсчета, которую вы использовали во второй части?
Технически len
и __len__
разные, так что можно сделать numbs = str1.__len__()
Для 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. В чем проблема?
пиши просто sum(iterable)
. мой пример подсчитывает 1
для каждого элемента (поскольку вы хотели длину)
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. Было бы признательно, если бы вы добавили пояснение к вашему коду.
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)
Q1 также можно решить с помощью форматирование строки:
message = f"{a} {b}{c}, {d}"
(требуется python >= 3.6). иначе:message = "{} {}{}, {}".format(a, b,c, d)
.