Форум сайта python.su
uf4JaiD5
1 print(f'Number {remainder_of_1_div} located on {f_num} position')
Это работает. Так как это F строки в python они появились вроде с 3.6 или 3.7 версии. Если меня память не подводит, но можно и через метод format()
2 Вот вывод с консоли. Так я считываю числа справа налево.
"C:\Program Files (x86)\Python37-32\python.exe" input first number:456 input second number:654 Number 4 located on 3 position Number 5 located on 3 position Number 6 located on 2 position
Отредактировано EugeneK (Янв. 14, 2019 06:35:46)
Офлайн
EugeneKНе знал про такое, благодарю.
это F строки в python они появились вроде с 3.6 или 3.7 версии.
EugeneKТам ошибка же, см. позиции.
Вот вывод с консоли. Так я считываю числа справа налево.
if remainder_of_2_div == remainder_of_1_div: print(f'Number {remainder_of_1_div} located on {f_num} position') elif div_zero_1 == 0: first_num = temp_num
Отредактировано uf4JaiD5 (Янв. 14, 2019 07:29:24)
Офлайн
Зачем тут возиться с длиной строк?
if length_f_of_num >= 1 and length_f_of_num <= 6: ... else: print('You can input digital from 1 to 999 999')
'-8'.isnumeric()==False
Отредактировано uf4JaiD5 (Янв. 14, 2019 07:45:32)
Офлайн
uf4JaiD5
“Просто поставить “first_num = temp_num” перед циклом. Или после.”
За это спасибо. поправил.
С 0 буду переделывать. а то что-то провтыкал. И если нет равных числе тоже. Так как когда несколько задач делаешь, что-то теряешь.
За “с 1 и 999999 таково условие задачи. ”
Отредактировано EugeneK (Янв. 14, 2019 13:56:22)
Офлайн
uf4JaiD5
Вроде переделал НО застрял на одном моменте.
Есть 1 число 567
2 число 25
input first number:567
input second number:25
Number 5 located on 3 position
Numbers don't have equal digitals
То я получаю что 2 не входит в диапазон. Но так и есть как сделать так чтоб не выпадала.
Но если я меню числа
Есть 1 число 567
2 число 52
То все нормально.
вроде учел свои недочеты.
first_num = input('input first number:') if first_num.isnumeric(): length_f_of_num = len(first_num) if length_f_of_num >= 1 and length_f_of_num <= 6: first_num = int(first_num) temp_num = first_num # second_num = input('input second number:') if second_num.isnumeric(): length_s_of_num = len(second_num) if length_s_of_num >=1 and length_s_of_num <=6: second_num = int(second_num) # if first_num > 0 and second_num > 0 and first_num < 999999 and second_num < 999999: for s_num in range(1, length_s_of_num+1): # flag = True remainder_of_2_div = second_num % 10 div_zero_2 = second_num // 10 second_num = div_zero_2 # for f_num in range(1, length_f_of_num+1): # remainder_of_1_div = first_num % 10 div_zero_1 = first_num // 10 first_num = div_zero_1 # if remainder_of_2_div == remainder_of_1_div: print(f'Number {remainder_of_1_div} located on {f_num} position') flag = False first_num = temp_num if flag is True: print(f"Numbers don't have equal digitals") else: print('Both of number must be bigger than 0') else: print('You can input digital from 1 to 999 999') else: print('Second field accept only positive digital') else: print('You can input digital from 1 to 999 999') else: print('First field accept only positive digital') #"""
Офлайн
EugeneKА идея-то какая?
Есть 1 число 567
2 число 25
input first number:567
input second number:25
Number 5 located on 3 position
Numbers don't have equal digitals
EugeneKМожно было написать, что именно выводится в этом случае, и что там нормально. А то надо запускать самому, смотреть.
Но если я меню числа
Есть 1 число 567
2 число 52
То все нормально.
Офлайн
“”Просто откуда взялась фраза “Numbers don't have equal digitals”?“”
Это фраза взялась с вот этого куста кода. Ниже я сделал через флаг.
if first_num > 0 and second_num > 0 and first_num < 999999 and second_num < 999999: for s_num in range(1, length_s_of_num+1): # flag = True remainder_of_2_div = second_num % 10 div_zero_2 = second_num // 10 second_num = div_zero_2 # for f_num in range(1, length_f_of_num+1): # remainder_of_1_div = first_num % 10 div_zero_1 = first_num // 10 first_num = div_zero_1 # if remainder_of_2_div == remainder_of_1_div: print(f'Number {remainder_of_1_div} located on {f_num} position') flag = False first_num = temp_num if flag is True: print(f"Numbers don't have equal digitals")
Отредактировано EugeneK (Янв. 15, 2019 17:58:29)
Офлайн
EugeneKЭто понятно. Я о трактовке условий задачи. По-моему, там не просят специально отмечать ситуацию, когда общих цифр нет. Там просят писать о том, что отсутствует конкретная цифра. И если делать так, то эта надпись вообще не нужна.
Это фраза взялась с вот этого куста кода. Ниже я сделал через флаг.
EugeneKПочему? Условия не запрещают.
нельзя вводить .. одинаковый числа только в разные стороны
EugeneKЕсли и отставлять вывод надписи “Numbers don't have equal digitals”, то тут-то её точно не должно быть. Надо исправлять. Подсказка: что показывает flag? (и лучше дать более “говорящее” название этой переменной)
получаю что 5 есть а 2 нет в первом числе.
input first number:567
input second number:25
Number 5 located on 3 position
Numbers don't have equal digitals
Офлайн
uf4JaiD5
Ещё раз: если цифры 2 в числе 567 нет, то об этом надо написать (“цифра 2 в числе 567 отсутствует”) или не надо?Уточнил задание ее писать не нужно. На этом задача принята. Задание уточнили НО ее уже нужно будет решать через строку.
if first_num > 0 and second_num > 0 and first_num < 999999 and second_num < 999999: flag = True for s_num in range(1, length_s_of_num+1): # remainder_of_2_div = second_num % 10 div_zero_2 = second_num // 10 second_num = div_zero_2 # for f_num in range(1, length_f_of_num+1): # remainder_of_1_div = first_num % 10 div_zero_1 = first_num // 10 first_num = div_zero_1 # if remainder_of_2_div == remainder_of_1_div: print(f'Number {remainder_of_1_div} located on {f_num} position') flag = False first_num = temp_num if flag is True: print(f"Numbers don't have equal digitals")
Отредактировано EugeneK (Янв. 17, 2019 09:09:37)
Офлайн
EugeneK
флаг стал стоять за пределами цикла.
EugeneKНу поздравляю.
На этом задача принята.
Офлайн