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

Python poprawa kodu

VPS Starter Arubacloud
+1 głos
206 wizyt
pytanie zadane 15 marca 2021 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 2021 przez niezalogowany
edycja 15 marca 2021

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 2021 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 2021 przez niezalogowany

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

komentarz 17 marca 2021 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 2021 przez VBService Ekspert (251,270 p.)
edycja 16 marca 2021 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 2021 przez Jakub 0 Pasjonat (23,120 p.)
edycja 15 marca 2021 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 2021 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ź 212 wizyt
pytanie zadane 17 marca 2021 w Python przez Zaczek Nowicjusz (150 p.)
0 głosów
1 odpowiedź 249 wizyt
pytanie zadane 22 kwietnia 2021 w Python przez Patryk Wiśniewski Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 217 wizyt

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...