2013-11-21 2 views
-1

Я почти закончил игру «стрела-трах». пользователь вводит 2 числа (X, Y), после диапазона и переходов между номерами (COUNTFROM, JUMP, COUNTUNTIL), а в последних 2 для циклов он должен печатать (в исходном виде, а не столбец), как описано в коде (например, x = 3, поэтому вместо 6 он будет печатать «стрела») проблема заключается в том, что id не применяет все условия if. он применяет только «Trach» и пропускает другие. В конце он должен напечатать необработанное количество и «стрела», «траха». БЛАГОДАРЯпропуская некоторые, если в цикле for for python

import sys 
Z = str(raw_input()) 
Digits_List = Z.split(" ") 
X = int(Digits_List[0]) 
Y = int(Digits_List[1]) 
CountFrom = int(Digits_List[2]) 
jump = int(Digits_List[3]) 
CountUntil = int(Digits_List[4]) 

// some basic conditions 
if (X<1 or X>9) or (Y<1 or Y>9): 
    print "X and Y must be between 1 and 9" 

if (jump==0): 
    print "Cannot jump from ", CountFrom, " to ", CountUntil 

if (CountFrom>0 and CountUntil>0 and jump<0): 
    print "Cannot jump from ", CountFrom, " to ", CountUntil 

if (CountFrom>0 and CountUntil<0 and jump>0): 
    print "Cannot jump from ", CountFrom, " to ", CountUntil 

if (CountFrom<0 and CountUntil>0 and jump<0): 
    print "Cannot jump from ", CountFrom, " to ", CountUntil 

if (CountFrom<0 and CountUntil<0 and jump>0): 
    print "Cannot jump from ", CountFrom, " to ", CountUntil 

portion = CountFrom - CountUntil 

if (portion % jump != 0): 
    print "Cannot jump from ", CountFrom, " to ", CountUntil 

elements = [] 
for i in range(CountFrom, CountUntil+jump, jump): 
    elements.append(i) 

//2 FOR LOOPS- if-s dont work 
for num in elements:  
    for num1 in str(num): 
     if num1==X and num1==Y: 
      print "BOOM-TRACH" 
     elif num1==X: 
      print "BOOM" 
     elif num1== Y: 
      print "TRACH" 
    elif (num%X==0) and (num%Y==0): 
     print "BOOM-TRACH"  
    elif (num%X == 0): 
     print "BOOM"   
    elif (num%Y == 0): 
     print "TRACH" 
    else: 
     print num 
+0

'str (num)! = Int (num)'. Вы можете рассмотреть ('int (num1)') – karthikr

+0

Это недопустимый код и не демонстрирует вашу проблему. Вы получаете 'SyntaxError' для комментария' // 'в стиле C++ (в Python,' // 'is division). Если вы исправите их, вы получите 'SyntaxError' за попытку привязать' elif' к 'for', что не имеет смысла. И в этом случае совершенно не очевидно, что вы там хотели (и вполне возможно, что все, что отличается от вашего фактического кода, заключается в том, что фактическая проблема заключается в том, что вы хотите, чтобы мы исправили). Пожалуйста, дайте нам реальный код. – abarnert

+0

Кроме того, по причинам, указанным karthikr и kindall, независимо от того, как вы структурируете свои '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ', ' Опишите свою реальную проблему, а не ту проблему, которую вы хотели. – abarnert

ответ

0
if num1==X and num1==Y: 

Здесь num1 строка. X и Y являются целыми числами. Они никогда не будут равными. Преобразуйте num1 в целое число.

Смежные вопросы