В настоящее время у меня возникают проблемы с выполнением задания, потому что я понимаю, для чего оно требуется, как написано ниже:
В этом назначении мы объединяем некоторые программные структуры и используем несколько операторов. Мы
в этом назначении работают только с положительными целыми числами (см. условия ниже). Мы получаем номер
и, таким образом, произвести новый номер. С этим новым номером мы повторяем процедуру до
число стало 1. Сама процедура проста: (дайте указанное число: x)
1. определить, является ли х нечетным или четным.
2. Если x четное, то мы разделим x на 2.
3. Если x нечетно, мы умножаем x на 3 и добавляем 1.
4. Это дает новый номер.
Каждое число, с которым мы сталкиваемся в этой процедуре, должно быть включено в результат. Это строка с
числа, разделенные запятой.
__version__ = '1.0'
__author__ = anonymous
__opgave__ = 'w3o3test'
from w3o3 import produceerReeks
#Do not change the testcode!
if __name__ == '__main__':
for d, r in [
(7, "7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1"),
(1, "1"),
(17, "17,52,26,13,40,20,10,5,16,8,4,2,1"),
(13, "13,40,20,10,5,16,8,4,2,1"),
(0, ""),
(-1, ""),
]:
res = produceerReeks(d)
if r == res:
print('produceerReeks({}) --> {}'.format(
d, res))
else:
print('Error:produceerReeks({}) --> {} != {}'.format(
d, res, r))
Это задание:
def produceerReeks(x):
# Write your code
return
Это фактическое задание, и это то, что у меня есть до сих пор:
#!/usr/bin/env python3
def produceerReeks(x):
while (x>=1):
if (x % 2) == 0:
x=x/2
else:
x=x*3+1
return (x)
Может кто-нибудь помочь мне заставить это работать? Это вывод прямо сейчас:
Error:produceerReeks(7) --> None != 7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1
Error:produceerReeks(1) --> None != 1
Error:produceerReeks(17) --> None != 17,52,26,13,40,20,10,5,16,8,4,2,1
Error:produceerReeks(13) --> None != 13,40,20,10,5,16,8,4,2,1
Error:produceerReeks(0) --> None !=
Error:produceerReeks(-1) --> None !=