Форум сайта python.su
0
import random count = 3 abc = {'a':0,'b':0,'c':0} x = random.choice('abc') abc[x]=1 choice = raw_input('a,b,c :') if choice in abc.keys(): if abc[choice] = 0 secondzerro = [key for key in abc.keys() if key!= x and abc(key) = 0] print (secondzerro) else: print ('you entered something wrong') continue print (abc) exit()
Офлайн
43
сравнивать нужно двумя знаками
if abc[choice] == 0:
Отредактировано sergeek (Апрель 2, 2013 21:14:36)
Офлайн
0
я и так и так пробовала, raw_input меняла на input
он выше строчку понимает abc=1, а эту не хочет =(
Офлайн
0
блииииииииииин:( пасибо. я уже час с этим двоеточием вожусь….
Офлайн
0
крутяк, смотри как у меня заработало =))))
import random count = 3 abc = {'a':0,'b':0,'c':0} x = random.choice('abc') abc[x]=1 print (abc) choice = input('choose the variable, where 1 is') if choice in abc.keys(): if abc[choice] == 0: secondzerro = [key for key in abc.keys() if key != choice and abc[key] == 0] print (secondzerro) if abc[choice] ==1: test = random.choice([key for key in abc.keys() if key != choice]) print(test) else: print ('you entered something wrong') #continue exit()
Офлайн
43
continue для циклов у тебя же нет тут цикла. Что ты хотела? Вернуться к input?
secondzerro = [key for key in abc.keys() if key != choice and abc[key] == 0]
Отредактировано sergeek (Апрель 2, 2013 21:46:15)
Офлайн
0
выйти хотела =) из программы. хотя пока не знаю, что хотела =)))
sergeekя вообще загадошный человек :D
А вообще странно, умеешь в синтаксис компрехеншенов, а элементарные вещи не знаешь
sergeekмне нужно пройтись по всем элементам и выбрать тот, который будет подходить условиям. это я могу сделать либо вынося в функцию, как сделал ты, либо от таким вот извращенным способом) я выбрала извращенный способ. тока теперь я убеждаюсь, что это не удобно.
тут у тебя будет массив из одного элемента вместо самого элемента, ты это хотела?
Офлайн
43
ну можно просто взять первый элемент из массива и это будет почти тоже самое что в моей функции
secondzerro = [key for key in abc.keys() if key != choice and abc[key] == 0][0]
Офлайн
0
из какого массива? из abc? блин( я торможу. я не понимаю. можно сделать как-то кроме функции и моего сооружения?
а еще у меня выводится не то, что нужно( при выборе 1 все отлично, а вот если в первый раз выбираешь ноль, то выводит сразу два значения =( я пробовала и в двух if'ах сделать одну переменную, и разные результат один! при выборе единицы все срабатывает, при нуле нет(
import random count = 3 secondzerro = '' zerro = '' abc = {'a':0,'b':0,'c':0} x = random.choice('abc') abc[x]=1 print (abc) choice = input('choose the variable, where 1 is: ') print('your choice is: ',choice) if choice in abc.keys(): if abc[choice] == 0: secondzerro = [key for key in abc.keys() if key != choice and abc[key] == 0] print ('This is a variable, where is 0: ',secondzerro) if abc[choice] ==1: zerro = random.choice([key for key in abc.keys() if key != choice]) print('This is a variable, where is 0: ',zerro) decision = input('Do you want to change your choice? press Y for yes or N for no ') if decision == 'y': change = [key for key in abc.keys() if key != choice and key != secondzerro and key != zerro] print ('your choice is changed to: ', change) else: print ('you entered something wrong') #continue exit()
Офлайн
0
короче я глупая)))) твоя функция работает ! а вот моя супер выборка нет) поэтому я ее оставила) не возражаешь, если я ее позаимствую?
Офлайн