Siemka jestem początkującym programistą i przyszedłem tutaj z pytaniem czy ktoś pomógłby mi w napisaniu tego programu "Napisz program wyświetlający wszystkie liczby całkowite z przedziału od 50 do 100 podzielne przez dowolną liczbę, którą podaje użytkownik.
Następnie przekształć program tak, aby przedział liczb również podawał użytkownik."
Z góry dziękuje
Miłego wieczoru :)
Miłego wieczoru.
Co masz już napisane i z czym masz problem.
Aktualnie nie mam nic i nie mam pojęcia jak do tego usiąść (zacząć)
Na początek powinno wystarczyć: https://ideone.com/
Wybierz z listy rozwijanej język Python 3
- https://pynative.com/python-range-function/ - zacznij od przykładowego kodu.
- Przerób range tak, żeby obejmowało
wszystkie liczby całkowite z przedziału od 50 do 100
. - Przed pętlą
for
pobierz od użytkownika liczbę (przez którą mają być podzielne liczby z przedziału). Użyj do tegoinput()
- https://www.geeksforgeeks.org/how-to-take-integer-input-in-python/ - Żeby sprawdzić, czy liczba jest podzielna przez inną liczbę użyj modulo:
if liczba1 % liczba2 == 0: #jesli liczba1 jest podzielna przez liczba2, to...
. Musisz takiegoif
wykonywać w pętli. Jeśli warunek jest spełniony, to wypisujeszprint(liczba1)
. - W ideone możesz podać testowe wejście (stdin), wpisz tam jakiś przykładowy dzielnik, np.
5
. Żebyinput()
w Twoim kodzie dostał liczbę, na podstawie której będzie się wykonywać algorytm.
Ściągnij Python'a z https://www.python.org/downloads/, odpal w terminalu python
i zacznij siekać tutorial.
ten Figaro napisał(a):
Aktualnie nie mam nic i nie mam pojęcia jak do tego usiąść (zacząć)
I już nazywasz się "początkującym programistą"? :D
Napisałbym Ci gotowca, ale zaraz @TomRiddle zacznie mnie szkalować :D hint: przyda Ci się modulo
Jeżeli potrzebujesz wszystkie liczby podzielne przez Div
z zakresu od Start
do Finish
To pierwsza liczba będzie s=(Start+Div-1)/Div*Div
ostatnia f=Finish/Div*Div;
Więc zaczynasz od s
lecisz do f
s krokiem div
.
Ewentualnie od s=(Start+Div-1)/Div
do f=Finish/Div;
ale wyświetlasz i*Div
wyświetlający wszystkie liczby
do wyświetlania masz funkcję print
, przykład:
print(123)
a = 23
print(a)
całkowite z przedziału od 50 do 100
masz do tego funkcję range
, a dokładniej range(50, 101)
, tylko musisz to później jakoś użyć, np. używając pętli for
, w której przechodzisz przez każdą liczbę i coś z nią robisz
for i in range(50, 101):
print(i)
podzielne przez dowolną liczbę
Musisz sprawdzić, czy reszta z dzielenia a
przez b
równa się zero. Czyli sprawdzasz za pomocą if
warunek a % b == 0
, gdzie a
to pierwsza liczba, a b
to ta druga liczba.
którą podaje użytkownik.
Możesz użyć funkcji input()
do tego, żeby użytkownik mógł coś napisać np.
b = int(input('wpisz liczbe:'))
int() przekonwertuje na liczbę całkowitą (albo rzuci wyjątkiem, jeśli się nie da), bo samo input()
zwróci stringa. Czyli jeśli użytkownik wpisze 23
to zostanie to zapisane w pamięci komputera jako dwuznakowy tekst ('23'
, czyli znak 2
, a następnie znak 3
), a nie jak prawdziwa liczba. Więc trzeba dopiero przekonwertować.
A mówili że python czytelny :D Nigdy wam już nie uwierzę :P
(lambda random, start, stop : list(map(print, filter(lambda num : (num % random) == 0, range(start, stop + 1)))))(int(input('Podaj dowolną liczbę: ')), int(input('Podaj min: ')), int(input('Podaj max: ')))
UPDATE tak się kończy czytanie SICP XD
KamilAdam napisał(a):
A mówili że python czytelny :D Nigdy wam już nie uwierzę :P
No
KamilAdam napisał(a):
A mówili że python czytelny :D Nigdy wam już nie uwierzę :P
(lambda random, start, stop : list(map(print, filter(lambda num : (num % random) == 0, range(start, stop + 1)))))(int(input('Podaj dowolną liczbę: ')), int(input('Podaj min: ')), int(input('Podaj max: ')))
UPDATE tak się kończy czytanie SICP XD
To filter
jeszcze ktoś używa? :D