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

Python poprawa kodu

Fiszki IT
Fiszki IT
+1 głos
106 wizyt
pytanie zadane 15 marca w Python przez Zaczek Nowicjusz (150 p.)
Bład to "Traceback (most recent call last):
  File "C:/Users/Ten Komputer/PycharmProjects/pythonProject1/main.py", line 42, in <module>
    print("Tajemnicza liczba to " + tajemnica)
TypeError: can only concatenate str (not "int") to str
"
Szczerze nie wiem gdzie leży błąd

import random
autor = "Wiktor"

print("What is your name?")
user_name = input()

if user_name == "Wiktor":
    print("Witamy Szefie B)")

elif user_name == "Kamil":
    print("Cieniasów nie wpuszczamy")
    quit()
else:
    print("Hej " + user_name)

wiek = int(input("ile masz lat? "))
if wiek == 0:
    print("Nie można mieć tyle lat???!! ")
elif wiek <= 17:
    print("Jesteś za młody, wróć jak dorośniesz")
else:
    print("Witam, zapraszam do mojej pierwszej gry :)")

tajemnica = random.randint(1, 99)
propozycja = 0
proba = 0
print("Mam dla Ciebie zagadkę!")
print("Musisz odgadąć o jakiej liczbie myśle troche ci pomoge - przynajmniej sie postaram :)")
while propozycja != tajemnica and proba == 6:
    propozycja = int(input("O jakiej liczbie myśle? ( ͡° ͜ʖ ͡°)"))
    if propozycja < tajemnica:
        print("za mała, próbuj dalej")
    elif propozycja > tajemnica:
        print("Za duża, próbuj dalej")
    elif  proba == 1:
        print("została ci ostatnia szansa :(")

if propozycja == tajemnica:
    print("Udało ci się! No dobra, a teraz postarajmy zrobić sie coś trudniejszego")
else:
    print("Wykorzystałeś wszystkie próby! Próbuj ponownie, a może ci sie uda")
    print("Tajemnicza liczba to " + tajemnica)

sekret1 = random.randint(1, 1000)
propozycja1 = 0
proba1 = 0
print("Teraz będzie nieco trudniej, liczby o których mogę myslęc zaczynaja sie od 0 do aż 1000!")
while propozycja1 != sekret1 and proba1 == 10:
    propozycja1 = int(input("O jakiej liczbie myśle"))
    if propozycja1 < sekret1:
        print("Liczba jest za mała, próbuj dalej!")
    elif propozycja1 > sekret1:
        print("Ta liczba jest za duża.")
    elif proba1 == 1:
        print("Została ci ostatnia szansa :(( ")
        print("Patrząc ze masz 10 próba a 9 juz wykorzystałeś masz 9.91% szans ze trafisz, powodzenia!")

if propozycja1 == sekret1:
    print("Jesteś niesamowity, powienieś zacząć grać w lotto!")
else:
    print("Niestety ci się nie udało, jeżeli chcesz możesz spróbować jeszcze raz")
    print("Tajemnicza liczba to " + sekret1)



 

3 odpowiedzi

+2 głosów
odpowiedź 15 marca przez niezalogowany
edycja 15 marca

Linia 49 :

print("Tajemnicza liczba to " + str(tajemnica))

Linia 69 :

print("Tajemnicza liczba to " + str(sekret1))

TypeError: can only concatenate str (not "int") to str

Konsola prawdę Ci powie cool

Baw Się dalej ...wink

Powodzenia yes

1
komentarz 15 marca przez Zaczek Nowicjusz (150 p.)
Własnie nie wiedziałem o co chodzi z tym ze moze byc tam tylko str, dzieki za pomoc :D
1
komentarz 15 marca przez niezalogowany

Nie ma za co .Cała przyjemność po mojej stronie wink

komentarz 17 marca przez Zaczek Nowicjusz (150 p.)

@niezalogowany, Przychodze z kolejnym problemem.. gdy wpisuje w te pola funkcje str program sam rozwiazuje zagadke  i nie daje możliwosci wpisania.

+2 głosów
odpowiedź 16 marca przez VBService VIP (121,100 p.)
edycja 16 marca przez VBService

Łączenie tekstu (string) z liczbą (integer)  wink

Mamy

user = 'Zaczek Nowicjusz ('
points = 130
  • funkcja str()
    print(user + str(points) + 'p.)')
  • operator %
    print("%s%sp.)" % (user, points))
  • funkcja format()
    print("{}{}p.)".format(user, points))
  • Python 3.6+ f-strings
    print(f"{user}{points}p.)")
  • print() łączenie za pomocą separatora null string (sep)
    print(user, points, "p.)", sep="")
  • operator repr()
    print(user + repr(points) + 'p.)')

     


user = 'Zaczek Nowicjusz ('
points = 130

print(user + str(points) + 'p.)')
print("%s%sp.)" % (user, points))
print("{}{}p.)".format(user, points))
print(f"{user}{points}p.)")
print(user, points, "p.)", sep="")
print(user + repr(points) + 'p.)')

print(user + f'{points}' + 'p.)')

 

+1 głos
odpowiedź 15 marca przez Jakub 0 Pasjonat (20,050 p.)
edycja 15 marca przez Jakub 0

Nie możesz konkatenować (łączyć) zmiennej typu str z typem liczbowym operatorem '+'. Musisz tu ręcznie dokonać konwersji int na str:

print("Tajemnicza liczba to " + str(tajemnica))

Tak samo jest w innych częściach Twojego kodu. Polecam najpierw próbować samemu czytać błędy w konsoli. Więcej się nauczysz smiley

Tak w ogóle to możesz zamiast '+' wykorzystać łatwiejszą i ładniejszą metodę:

print(f"Tajemnicza liczba to {tajemnica}"))

 

komentarz 15 marca przez Zaczek Nowicjusz (150 p.)
własnie nie wiedziałem gdzie mam str wpisać. Dzieki za odpowiedz i protipa :D

Podobne pytania

0 głosów
1 odpowiedź 61 wizyt
pytanie zadane 17 marca w Python przez Zaczek Nowicjusz (150 p.)
0 głosów
1 odpowiedź 79 wizyt
pytanie zadane 22 kwietnia w Python przez Patryk Wiśniewski Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 94 wizyt
Porady nie od parady
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

84,746 zapytań

133,553 odpowiedzi

295,968 komentarzy

56,007 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...