1 Востаннє редагувалося koala (19.10.2021 17:25:02)

Тема: Прошу допомогти

Програма зчитує двозначне натуральне число з проміжку від 10 до 99 включно і виводить через
пропуск кожну цифру окремо.
На вхід: З клавіатури вводимо натуральне число з проміжку від 10 до 99.
На вихід: Програма виводить на екран два одноцифрові числа, розділені пропуском.
Приклад:
Вхідні дані
23
Вихідні дані
2 3


import math
x = input("Ведіть число 10-99:")
norm_x = [],[]
print(x[0]," ",x[1])

потрібно написати пріжуток 10-99

2 Востаннє редагувалося koala (19.10.2021 17:27:40)

Re: Прошу допомогти

Програмування - це формалізація алгоритму, тобто певної послідовності дій, до того рівня, де це сприйматиме комп'ютер. Якщо ви не уявляєте взагалі, що саме має зробити комп'ютер - то у вас і програму написати не вийде. І навіть якщо уявляєте, але не можете це записати українською мовою - то так само не вийде, бо українською зазвичай написати легше, ніж на Python. Власне, українською у вас написано, а ви щось дивне просите. Якщо робити саме те, що ви просите, то будь ласка:

print('пріжуток 10-99')

Але я чомусь певен, що вам точно не треба "написати пріжуток 10-99". Вам треба щось інше. Спробуйте якось це сформулювати так, щоб було зрозуміло, що вам треба. Повірте, вам це - вміння зрозуміло висловлювати свої думки - дуже знадобиться і в програмуванні, і в звичайному житті.

P.S. додав вам теги code навколо коду, наступного разу, будь ласка, самостійно (кнопка <>).

3

Re: Прошу допомогти

потрібно задати обмеження 10-99 при інакших випадках виводити помилку

4

Re: Прошу допомогти

О, чудово. Ну то це ж розгалуження: якщо умова виконується (змінна в певних межах), то робити одне, а якщо не виконується - то інше. Як розгалуження в Python робиться - вже вчили? Якщо ні - гляньте у підручнику. Умова ця на Python записується дуже просто: 10<=x<=99. Тільки змінна має бути цілого типу (int), але це і так в умові сказано ("зчитує двозначне натуральне число").

Подякували: Q-bart, S1mmZ2

5

Re: Прошу допомогти

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

6

Re: Прошу допомогти

це має бути читання підручника

Подякували: koala, Regen, leofun013

7

Re: Прошу допомогти

Це форум програмістів, а не новачків. Якщо ви не плануєте ставати програмістом - він не для вас. Якщо ж плануєте - відкривайте підручника.

8

Re: Прошу допомогти

import math
x = input("Ведіть число 10-99:")
norm_x = [],[]
if int(10<=x<=99):
    print(x)
else:
    print("eror")
print(x[0]," ",x[1])

можете сказати в чому проблема?

9 Востаннє редагувалося mamkin haker (19.10.2021 20:01:02)

Re: Прошу допомогти

S1mmZ написав:
import math
x = input("Ведіть число 10-99:")
if int(10<=x<=99):
    print(x[0]," ",x[1])
else:
    print("eror")

можете сказати в чому проблема?

int(10<=x<=99) <- туть

Подякували: S1mmZ1

10

Re: Прошу допомогти

S1mmZ написав:
import math
x = input("Ведіть число 10-99:")
norm_x = [],[]
if int(10<=x<=99):
    print(x)
else:
    print("eror")
print(x[0]," ",x[1])

можете сказати в чому проблема?

В тому що ви не читаєте підручника і не можете сказати який рядок коду за що відповідає.

11 Востаннє редагувалося koala (19.10.2021 20:07:24)

Re: Прошу допомогти

Для початку ви скажіть, чому ви вважаєте, що тут є проблема.
Вам, швидше за все, Python і так пише, де саме проблема; але ви не можете (чи не бажаєте) розбирати те, що вам пише інтерпретатор, і не хочете з нами ділитися цією інформацією. А це важливо, якщо ви хочете, щоб ми вам допомогли (хоча поки що виглядає все так, що ви хочете, щоб ми не допомогли, а зробили за вас; позбувайтеся цієї звички).
І ні, пане Мамкин Хакер, там якраз проблеми немає, bool в int і назад у Python нормально перетворюється (звісно, в 1 чи 0, але то для цієї задачі несуттєво). Так, зайва дія, але тут цих зайвих дій і так купа.

12

Re: Прошу допомогти

Прочитав скаргу на себе "не пише по звісту", ліл. А відповідь проста

13 Востаннє редагувалося bebyk (19.10.2021 20:14:35)

Re: Прошу допомогти

S1mmZ написав:
import math
x = input("Ведіть число 10-99:")
norm_x = [],[]
if int(10<=x<=99):
    print(x)
else:
    print("eror")
print(x[0]," ",x[1])

можете сказати в чому проблема?

import sys, math

x = input("Введіть число 10-99:\n")

if int(x) >= 10 and int(x) <= 99:
    print("Результат: ", x[0], " ", x[1])
else:
    sys.exit("Помилка: число менше 10 або більше 99")
Подякували: S1mmZ, leofun012

14

Re: Прошу допомогти

я не можу найти інформації по цьому, вибиває помилку "TypeError: 'int' object is not subscriptable" line 6

import math
x = input("Ведіть число 10-99:")
x = int(x)
norm_x = [],[]
if 10 <=x<= 99:
    print(x[0]," ",x[1])
else:
    print("eror")

полягаю помилку в  print(x[0],"  ",x[1])
завдання полягає щоб розділи двоцифрове число на мою думку print(x[0],"  ",x[1]) ця строчка має розділяти їх проте це не працює. щось звязано з int проте я не розібрався

15 Востаннє редагувалося mamkin haker (19.10.2021 20:27:13)

Re: Прошу допомогти

S1mmZ написав:
import math#1 навіщо потрібний цей імпорт, нерозумію
x = input("Ведіть число 10-99:")#2
x = int(x)#3
norm_x = [],[]#4 навізо ця стрічка, теж не зрозумів
if 10 <=x<= 99:#5
    print(x[0]," ",x[1])#6 помилка при взятті 0 елемента з числа рішення: зконвертуйте x в стрічку
else:#7
    print("eror")#8 букву пропустили ERROR
Подякували: S1mmZ1

16

Re: Прошу допомогти

Бо число - то не дві цифри. Число - це кількість. Ви не можете звертатися до числа за індексами. За індексами можна звертатися до рядка, як робить пан bebyk. Щоб отримати останню цифру числа, треба скористатися операцією пошуку остачі при діленні (оператор % ), а решту числа - операцією цілочисельного ділення //; перетворення числа на рядок неявно використовує ці операції, тому можна також скористатися нею
А ще вам абсолютно не потрібні бібліотека math та змінна norm_x.

якби я був вашим викладачем, то очікував би чогось такого
x = int(input("Ведіть число 10-99:"))
if 10 <=x<= 99:
    print(x//10, x%10) #пробіл між аргументами і так додається
else:
    print("Помилка")
Подякували: Regen1

17

Re: Прошу допомогти

Взагалі можна навіть

print(*divmod(x,10) if 10<=x<100 else "Помилка")

зробити, але то явно не для початківця :)

Подякували: mamkin haker1

18

Re: Прошу допомогти

koala написав:

Взагалі можна навіть

print(*divmod(x,10) if 10<=x<100 else "Помилка")

зробити, але то явно не для початківця :)

викладачі напевно навіть такого не знають :D

19

Re: Прошу допомогти

koala написав:

Взагалі можна навіть

print(*divmod(x,10) if 10<=x<100 else "Помилка")

зробити, але то явно не для початківця :)

Оскільки тут параметри розгортаються зірочкою, слово «Помилка» буде надруковано з пробілами між буквами. Щоб обійти це, повідомлення треба обгорнути в список: ["Помилка"]

Подякували: leofun01, koala2

20 Востаннє редагувалося P.Y. (20.10.2021 09:33:22)

Re: Прошу допомогти

x=input("Ведіть число 10-99: ").strip().lstrip('0')
assert 10<=int(x)<=99, "Помилка"
print(*x)

P.S. Додав ще один фікс на випадок, якщо користувач допише нуль на початку.