• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problemy na początku nauki Python

42 Warsaw Coding Academy
0 głosów
406 wizyt
pytanie zadane 29 października 2021 w Python przez Tomaszowy Nowicjusz (150 p.)

Cześć, mam problem dopiero zacząłem się uczyć i chciałem napisać program w konsoli. Nie wiem z jakiego powodu nie chce mi zadziałać w teorii mam napisane, że gdy użytkownik napiszę liczbę

wylosowaną ( if randint == Y: print('Zgadłeś') ale pomimo wpisywanej prawidłowej liczby nie chce mi pokazać wiadomości ,,Zgadłeś''. ktoś może mi powiedzieć dlaczego? Gdzie jest błąd?  jak coś pod randint == Y starałem tez wstawić X lecz nie działało 

Kod: 

from random import randint

X = ((randint(1,10)))

for X in range(1):
   print((randint(1,10)))
Y = input('Wprowadź liczbę')
if randint == Y:
    print('Zgadłeś')

1 odpowiedź

+3 głosów
odpowiedź 29 października 2021 przez edutomek Dyskutant (8,380 p.)

W zasadzie wszystko jest nie tak:

1) (drobne uwagi)

X = ((randint(1,10)))

Duży problem to nie jest, ale te zewnętrzne nawiasy są zbędne.

BTW, nie rozumiem, skąd to się bierze. Mam zajęcia z Pythona z początkującymi i oni też mają tendencję do wstawiania wszystkiego w nawiasy.

BTW2: nazwy zmiennych lepiej zapisywać małymi literami. Duże kojarzą się ze stałymi.

2)

X = ((randint(1,10)))

for X in range(1):
   print((randint(1,10)))

Najpierw przypisujesz do X jakąś losową liczbę. A chwilę potem używasz tej zmiennej w pętli. (Swoją drogą pętla wykona się tylko jeden raz - po co taka pętla?)

Nie wiem, co chcesz tu osiągnąć, ale ta pętla wypisze jedną losową wartość.

Natomiast zmienna X zostanie "nadpisana" w pętli i po jej poprzedniej (losowej) wartości nie zostanie nawet ślad.

3)

Y = input('Wprowadź liczbę')

Jeśli używasz Pythona 2, to rzeczywiście w Y będzie jakaś liczba.

Jeśli natomiast używasz Pythona 3, to w Y znajdzie się napis. To inny typ danych.

Gdybyś chciał liczbę, to trzeba to przekonwertować na int lub float.

4)

if randint == Y:

To kompletnie nie ma sensu.

randint to nazwa funkcji. Jak funkcja (bo do niej się odwołujesz) ma być równa wartości pobranej z klawiatury?

Nie jestem pewien, co tu masz na myśli. Może coś takiego:

if randint(1,10) == Y:


 

komentarz 29 października 2021 przez Tomaszowy Nowicjusz (150 p.)
Gdybyś chciał liczbę, to trzeba to przekonwertować na int lub float.
Jak to zrobić?
komentarz 29 października 2021 przez edutomek Dyskutant (8,380 p.)
x = int(input('Podaj liczbę:'))

Sposób nie jest idealny (spróbuj wpisać np. "ziutek" i zobacz, co się stanie), ale na początek może być.

komentarz 30 października 2021 przez VBService Ekspert (256,600 p.)

@edutomek, 

Nie jestem pewien, co tu masz na myśli. Może coś takiego:

if randint == Y:

pewnie o to, chodziło

x = randint(1,10)
y = int(input('Wprowadź liczbę'))
if x == y:
    print('Zgadłeś')

 

Podobne pytania

+1 głos
1 odpowiedź 1,802 wizyt
0 głosów
3 odpowiedzi 2,041 wizyt
+1 głos
5 odpowiedzi 2,216 wizyt
pytanie zadane 24 października 2016 w Rozwój zawodowy, nauka, praca przez MR.X Użytkownik (860 p.)

93,398 zapytań

142,390 odpowiedzi

322,577 komentarzy

62,756 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...