Получаю ошибку: TypeError: can only concatenate str (not "int") to str

Gvygyt

Новичок
Пользователь
Дек 31, 2020
13
0
1
Код:
import random
#1
print("\a")
yourscore = 0
computerscore = 0


while yourscore < 3 and computerscore < 3:

        #2
        print('Текущий счет -Игрок: '+ str(yourscore) + " -компьютер: " + str(computerscore))
        #3
        yourscore = input('Выбери: камень, ножницы или бумага: ')
        if yourscore == ('камень') or yourscore == ('ножницы') or yourscore == ('бумага'):
            print('Вы выбрали ' , yourscore)

            

        #4
        computerscore = random.randint(1,3)
        if computerscore == 1:
            computerscore = 'камень'
        elif computerscore == 2:
            computerscore = 'ножницы'
        elif computerscore == 3:
            computerscore = 'бумага'
        print('компьютер выбрал ' + computerscore)
                
        #5

        if yourscore == computerscore:
            print("Ничья")
        elif ((yourscore == 'камень' and computerscore == 'ножницы')
        or (yourscore == 'бумага' and computerscore == 'камень')
        or (yourscore == 'ножницы' and computerscore == 'бумага')):
            print('Победило мешок с костями')
            yourscore+=1
        else:
            print('Победил компьютерный гараж')
            computerscore+=1
else:
        print("Нет такого варианта")
print("Игра закончилась")

print('Итоговый счет - Игрок: ' + str(YourScore) + ' - Компьютер: ' + str(ComputerScore))

Это код для игры "камень ножницы бумага". Проблема в том, что не идёт подсчет очков так, как выдает ошибку, в следствии чего программка вылетает из консоли
 

Wolkan

Пользователь
Пользователь
Дек 4, 2020
26
5
3
Он же тебе пишет что не могу сложить число со строкой.
Причем тут ты перевел число в строку:
Код:
print('Текущий счет -Игрок: '+ str(yourscore) + " -компьютер: " + str(computerscore))

А тут нет:
Код:
print('компьютер выбрал ' + computerscore)
 

Wolkan

Пользователь
Пользователь
Дек 4, 2020
26
5
3
Python:
import random
#1
print("\a")
yourscore = 0
computerscore = 0


while yourscore < 3 and computerscore < 3:

        #2
        print('Текущий счет -Игрок: '+ str(yourscore) + " -компьютер: " + str(computerscore))
        #3
        yourchoice = input('Выбери: камень, ножницы или бумага: ')
        if yourchoice == ('камень') or yourchoice == ('ножницы') or yourchoice == ('бумага'):
            print('Вы выбрали ' , yourchoice)

           

        #4
        computerroll = random.randint(1,3)
        if computerroll == 1:
            computerchoice = 'камень'
        elif computerroll == 2:
            computerchoice = 'ножницы'
        elif computerroll == 3:
            computerchoice = 'бумага'
        print('компьютер выбрал ' + computerchoice)
               
        #5

        if yourchoice == computerchoice:
            print("Ничья")
           
        elif ((yourchoice == 'камень' and computerchoice == 'ножницы')
        or (yourchoice == 'бумага' and computerchoice == 'камень')
        or (yourchoice == 'ножницы' and computerchoice == 'бумага')):
            print('Победил мешок с костями')
            yourscore+=1
        else:
            print('Победил компьютерный гараж')
            computerscore+=1
else:
        print("Нет такого варианта")
print("Игра закончилась")

print('Итоговый счет - Игрок: ' + str(yourscore) + ' - Компьютер: ' + str(computerscore))

Переписал твой код. Ты там мало переменных задал для определения своих значений. Тебе нужны переменные для:
-определять выбор игрока
-вести счет игрока
-определять выбор компьютера
-вести счет компьютера.
Сравни код с моим, разбери ошибки.
И да, питон чувствителен к регистру. YourScore и yourscore не одно и то же.
 

Wolkan

Пользователь
Пользователь
Дек 4, 2020
26
5
3
спасибо, ты мне очень помог)))) Но как ты смог использовать переменную computerchoice и yourchoice, если их не добавлял в начале?
Не важно где ты их определяешь. Главное обращаться к ним после определения.
 

Wolkan

Пользователь
Пользователь
Дек 4, 2020
26
5
3
С наступающим!!!!!
Спасибо, и тебя с Наступающим!
 

Wolkan

Пользователь
Пользователь
Дек 4, 2020
26
5
3
а как и где ты их определил или просто добавил их в код? Понимаю, что вопрос тупой, но я не пойму пока не доберусь до сути
Знак = как правило задает переменную.
computerchoice = 'камень'
computerroll = random.randint(1,3)
yourchoice = input('Выбери: камень, ножницы или бумага: ')
Везде здесь определяются переменные.
 

Wolkan

Пользователь
Пользователь
Дек 4, 2020
26
5
3
Теперь понял. Спасибо ещё раз за помощь, сложилось хорошее впечатление об этом форуме)
Больше не буду мучать тебя. Ещё раз с наступающим и всего хорошего тебе
Программируем на Python. Майкл Доусон.
Вот тебе книжечка. Думаю для тебя будет как раз. Успехов в изучении.
 
  • Мне нравится
Реакции: Gvygyt

Gvygyt

Новичок
Пользователь
Дек 31, 2020
13
0
1
Он же тебе пишет что не могу сложить число со строкой.
Причем тут ты перевел число в строку:
Код:
print('Текущий счет -Игрок: '+ str(yourscore) + " -компьютер: " + str(computerscore))

А тут нет:
Код:
print('компьютер выбрал ' + computerscore)
согласен, однако ошибку выдает в строке 37 в коде yourscore+=1 и в строке 40 yourscore+=1
 

Gvygyt

Новичок
Пользователь
Дек 31, 2020
13
0
1
Python:
import random
#1
print("\a")
yourscore = 0
computerscore = 0


while yourscore < 3 and computerscore < 3:

        #2
        print('Текущий счет -Игрок: '+ str(yourscore) + " -компьютер: " + str(computerscore))
        #3
        yourchoice = input('Выбери: камень, ножницы или бумага: ')
        if yourchoice == ('камень') or yourchoice == ('ножницы') or yourchoice == ('бумага'):
            print('Вы выбрали ' , yourchoice)

           

        #4
        computerroll = random.randint(1,3)
        if computerroll == 1:
            computerchoice = 'камень'
        elif computerroll == 2:
            computerchoice = 'ножницы'
        elif computerroll == 3:
            computerchoice = 'бумага'
        print('компьютер выбрал ' + computerchoice)
               
        #5

        if yourchoice == computerchoice:
            print("Ничья")
           
        elif ((yourchoice == 'камень' and computerchoice == 'ножницы')
        or (yourchoice == 'бумага' and computerchoice == 'камень')
        or (yourchoice == 'ножницы' and computerchoice == 'бумага')):
            print('Победил мешок с костями')
            yourscore+=1
        else:
            print('Победил компьютерный гараж')
            computerscore+=1
else:
        print("Нет такого варианта")
print("Игра закончилась")

print('Итоговый счет - Игрок: ' + str(yourscore) + ' - Компьютер: ' + str(computerscore))

Переписал твой код. Ты там мало переменных задал для определения своих значений. Тебе нужны переменные для:
-определять выбор игрока
-вести счет игрока
-определять выбор компьютера
-вести счет компьютера.
Сравни код с моим, разбери ошибки.
спасибо, ты мне очень помог)))) Но как ты смог использовать переменную computerchoice и yourchoice, если их не добавлял в начале?
 

Gvygyt

Новичок
Пользователь
Дек 31, 2020
13
0
1
Python:
import random
#1
print("\a")
yourscore = 0
computerscore = 0


while yourscore < 3 and computerscore < 3:

        #2
        print('Текущий счет -Игрок: '+ str(yourscore) + " -компьютер: " + str(computerscore))
        #3
        yourchoice = input('Выбери: камень, ножницы или бумага: ')
        if yourchoice == ('камень') or yourchoice == ('ножницы') or yourchoice == ('бумага'):
            print('Вы выбрали ' , yourchoice)

          

        #4
        computerroll = random.randint(1,3)
        if computerroll == 1:
            computerchoice = 'камень'
        elif computerroll == 2:
            computerchoice = 'ножницы'
        elif computerroll == 3:
            computerchoice = 'бумага'
        print('компьютер выбрал ' + computerchoice)
              
        #5

        if yourchoice == computerchoice:
            print("Ничья")
          
        elif ((yourchoice == 'камень' and computerchoice == 'ножницы')
        or (yourchoice == 'бумага' and computerchoice == 'камень')
        or (yourchoice == 'ножницы' and computerchoice == 'бумага')):
            print('Победил мешок с костями')
            yourscore+=1
        else:
            print('Победил компьютерный гараж')
            computerscore+=1
else:
        print("Нет такого варианта")
print("Игра закончилась")

print('Итоговый счет - Игрок: ' + str(yourscore) + ' - Компьютер: ' + str(computerscore))

Переписал твой код. Ты там мало переменных задал для определения своих значений. Тебе нужны переменные для:
-определять выбор игрока
-вести счет игрока
-определять выбор компьютера
-вести счет компьютера.
Сравни код с моим, разбери ошибки.
И да, питон чувствителен к регистру. YourScore и yourscore не одно и то же.
С наступающим!!!!!
 

Gvygyt

Новичок
Пользователь
Дек 31, 2020
13
0
1
Не важно где ты их определяешь. Главное обращаться к ним после определения.
а как и где ты их определил или просто добавил их в код? Понимаю, что вопрос тупой, но я не пойму пока не доберусь до сути
 

Gvygyt

Новичок
Пользователь
Дек 31, 2020
13
0
1
Знак = как правило задает переменную.
computerchoice = 'камень'
computerroll = random.randint(1,3)
yourchoice = input('Выбери: камень, ножницы или бумага: ')
Везде здесь определяются переменные.
Теперь понял. Спасибо ещё раз за помощь, сложилось хорошее впечатление об этом форуме)
Больше не буду мучать тебя. Ещё раз с наступающим и всего хорошего тебе
 

Форум IT Специалистов