Найти - Пользователи
Полная версия: не выполняется if
Начало » Python для новичков » не выполняется if
1 2
doza_and
Кроме того что указал igor.kaist, для простых приложений (у которых из названия понятно что они делают и есть желание в винде на них бросить запчасти) можно использовать sys.argv. Если программа фильтр, - заливает себе данные из входного потока то удобнее
import fileinput

for line in fileinput.input():
print "line:",line
А для сложного - gui
Voroshek
Ух, сколько всего. Да, приложение простое, на сложное пока ума нет =) Обязательно попробую, тем паче почитал статьи про input
sp3
так у вас питон 3, input возвращает всегда строку.
if lvl == “0”: итд
Voroshek
#!/usr/bin/env python
# _*_ coding: utf-8 _*_


t = []
t1 = [1, 2, 3, 4]
t2 = [5, 6]
x = input()

if x == 1:
t = t + t1
print(t)
Да чего же ему ещё не хватает? Пример буквально из учебника! Но при вводе “1” не возвращает ничего :-(
InPython
sp3
так у вас питон 3, input возвращает всегда строку.
т.е.
if int(x) == 1:
Voroshek
Извините, мне конечно не стоило настолько упрощать программу. Для ввода я использовал tkinter:
#! /usr/bin/env python
# _*_ coding: utf-8 _*_

import tkinter
from tkinter import *

t = []

rus = ['носильщики', 'воины']

ukr = ['носильники', 'воiни']

# запрос языка

yazyk = tkinter.Tk()
yazyk.title('язык')

def die(event):
yazyk.destroy()

var = tkinter.IntVar()
var.set(1)
rad1 = Radiobutton(yazyk, text='рус', variable=var, value=0)
rad1.grid(row=2, column=1)
rad2 = Radiobutton(yazyk, text='укр', variable=var, value=1)
rad2.grid(row=2, column=3)
but = tkinter.Button(text='гут')
but.bind('<Button-1>', die)
but.grid(row=3, column=2)

yazyk.mainloop()

if var == 0:
t = t + rus
print(t)
elif var == 1:
t = t + ukr
print(t)
и не возвращалось ничего. Если вынести print(t) наружу
if var == 0:
t = t + rus
elif var == 1:
t = t + ukr

print(t)
то возвращает
InPython
я с тк не работал еще, но подозреваю что с гуи просто так нельзя выводить на консоль. Попробуй вывести результат в тк месседжбоксом.
а так все вроде работает
import random
t = []
rus = ['носильщики', 'воины']
ukr = ['носильники', 'воiни']
var = random.choice([0, 1])
print (var)
if var == 0:
t = t + rus
print(t)
elif var == 1:
t = t + ukr
print(t)
Voroshek
Спасибо, разобрался. Допёр спросить print(var), возвращает буквенное выражение - конечно, все if-elif были False! А в учебнике было написано, что var присваивается значение value :-(
InPython
что за учебник? качай Марчка Лутца “Изучаем Питон” 4-е издание.
Voroshek
По tkinter в Викиуниверситете и на Сером форуме одинаково написано
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