2015-02-13 4 views
0

Я пытался на протяжении веков, как заставить это работать. Предполагается выбрать случайное число с «из произвольного импорта randrange», за которым следует строка «x = randrange (1,3). Я использовал этот генератор в другое время, и он работал тогда, но он не будет работать с этим: /. Вот код:Python - почему мой генератор случайных чисел не работает?

from random import randrange 
numberboy == randrange(7,9) 
if numberboy == "7": 
    print ("You unluckily fall into a pit!") 
    health -= 1 
    if health == "1": 
     print ("You drop to your knees and lie, filled with pain in the pit. You drop to the floor. Your quest is over.") 
     print ("Your health has fallen to " + str(health) + ". ") 



if numberboy == "8" or "9": 
    print ("You could have fallen into a pit but you luckily didn't!") 
    print ("You find a path leading of to another room.") 

print ("You walk down the path and find a light illuminating an elvish sword!") 
print ("You walk out of an escape path and find youself coming out of a secret entrance at the clearing.") 
import time 

Btw, ранее на использовании «numberboy = 0» для того, чтобы он работать (numberboy переменная, х)

ответ

3

Вы сравниваете число в строку ...

Использование:

if numberboy == 7: 

вместо:

if numberboy == "7": 

То же самое со здоровьем, используйте это сравнение:

if health == 1: 

Кроме того, это неправильно:

if numberboy == "8" or "9": 

Используйте вместо этого:

if numberboy == 8 or numberboy == 9: 

Надеется, что это помогает

+0

Возможно лучше: 'если numberboy в (8, 9):' –

+1

Да, это лучше, но я учил, что бы запутать OP –

+0

Thankyou! Не могу поверить, как быстро я получил ответы! – Lixerman99

0

Пара вещей, которые я заметил:

  1. numberboy == randrange(7,9) должен быть numberboy = randrange(7,9)
  2. Вы никогда не определяют здоровье со значением, вы только попытаться вычесть из него. Это будет вызывать NameError
  3. Вы сравниваете целые числа со строками. Должно быть numerboy == 7 вместо numberboy == '7'
0
numberboy == randrange(7,9) 

ваша проблема. Просто замените его

numberboy = randrange(7,9) 

и randrange(x,y) даст вам такого рода числа x <= nb < y поэтому он не может быть y

+0

Спасибо! Я пробовал все другие решения, но это все еще не сработало. Эта магическая линия внизу была исправлена! – Lixerman99

0

Вы должны использовать random.randint (пол, CEIL) для целых чисел и случайных .random (floor, ceil) для десятичных знаков

0

Итак, несколько примечаний: пожалуйста, просмотрите мои комментарии в коде. вам нужно объявить здоровье, у вас есть номербойный анализ, не приравнивающий. эти две вещи являются самыми большими проблемами в вашем коде. мой совет - загрузить pycharm и узнать, как лучше отлаживать код. С большим опытом эти ошибки не были бы сделаны.

from random import randrange 
import time #this is unused 


numberboy = randrange(7,9) # you had this evaluating not declared 
print numberboy 
health = 10 #you did not declare health 
if numberboy == 7: # numberboy is a int type no need for making it a string 
    print ("You unluckily fall into a pit!") 
    health -= 1 
    if health == 1: 
     print ("You drop to your knees and lie, filled with pain in the pit. You drop to the floor. Your quest is over.") 
     print ("Your health has fallen to " + str(health) + ". ") 

if numberboy == 8 or 9: 
    print ("You could have fallen into a pit but you luckily didn't!") 
    print ("You find a path leading of to another room.") 

print ("You walk down the path and find a light illuminating an elvish sword!") 
print ("You walk out of an escape path and find youself coming out of a secret entrance at the clearing.") 
Смежные вопросы