Найти - Пользователи
Полная версия: Помогите новичку
Начало » Python для новичков » Помогите новичку
1
Marlton
Здравствуйте! Вот написал программку:
 #Камень, ножницы, бумага 1.0
print('Камень, ножницы, бумага 1.0')
import random
total=' '
knb=input('Камень(1), ножницы(2) или бумага(3)? ')
comp=random.randint(1,3)
if comp==1:
    comp1="Камень"
elif comp==2:
    comp1="Ножницы"
elif comp==3:
    comp1="бумага"
if knb==1 and comp==1:
    total=int('Ничья!')
elif knb==1 and comp==2:
    total=int('Вы выйграли!')
elif knb==1 and comp==3:
    total=int('Вы проиграли!')
elif knb==2 and comp==1:
    total=int('Вы проиграли!')
elif knb==2 and comp==2:
    total=int('Ничья!')
elif knb==2 and comp==3:
    total=('Вы выйграли!')
elif knb==3 and comp==1:
    total=int('Вы выйграли!')
elif knb==3 and comp==2:
    total=int('Вы проиграли!')
elif knb==3 and comp==3:
    total=int('Ничья!')
print("Вы выбрали ",knb, ", компютер выбрал", comp1)
print(total)
Все бы ничего, но я не пойму почему в конце программа не выводит кто выйграл/проиграл/ничья. Есть ли более короткий и простой способ написать эту программу?
Прошу тапками не кидаться, идет третий день изучения мною питона
marvellik
 knb=input('Камень(1), ножницы(2) или бумага(3)? ')
if knb==1 and comp==1:
в условиях ты сравниваешь строку с числом
 import random
knb=int(input('Камень(1), ножницы(2) или бумага(3)? '))
comp=random.randint(1,3)
print("Вы выбрали ",knb, ", компютер выбрал", comp)
if comp>knb or comp == 1 and knb == 3:
    print ('комп')
elif comp == knb:
    print('ничья')
else:
    print('вы')
может с условиями ошибся но как то так
Master_Sergius
Например вот так:

  
#!/bin/env python
#-*- coding: utf-8 -*-
 
from random import randint
 
DRAW = "Ничья"
WIN = "Вы победили"
LOSE = "Вы проиграли"
 
STONE, SCISSORS, PAPER = 1, 2, 3
 
result_dict = {(STONE, SCISSORS): WIN,
              (SCISSORS, PAPER): WIN,
              (PAPER, STONE): WIN,
              (SCISSORS, STONE): LOSE,
              (PAPER, SCISSORS): LOSE,
              (STONE, PAPER): LOSE}
 
knb=input('Камень(1), ножницы(2) или бумага(3)? ')
comp=randint(1,3)
 
print('Компьютер выбрал: %s' % comp)
result = result_dict.get((knb, comp), DRAW)
print(result)
terabayt
Master_Sergius
result_dict = {(STONE, SCISSORS): WIN, (SCISSORS, PAPER): WIN, (PAPER, STONE): WIN, (SCISSORS, STONE): LOSE, (PAPER, SCISSORS): LOSE, (STONE, PAPER): LOSE}
здесь можно и обычной логикой обойтись как было в marvellik или
 import random
print('Камень, ножницы, бумага 1.0')
s = ('камень', 'ножницы', 'бумага')
knb = int(input('Камень(1), ножницы(2) или бумага(3)? ')) - 1
comp = random.randint(0, 2)
print("Вы выбрали {}, компютер выбрал {}.\n{}".format(
    s[knb], s[comp],
    ('Вы проиграли!', 'Ничья!', 'Вы выиграли!')[((comp + 1) % 3) - knb]))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB