-1

所以我有一个基本问题:如何在 easyGUI 中正确使用 if 和 else 语句?这就是我所拥有的:

import easygui

msg = "Oh i see m9, choos your difficulty"
title = "Mountain Dew Franchise"
choices = ["Pro 360 noscoper(+1001)", "Dank skrubl0rd(-666)"]
choice = easygui.ynbox(msg, title, choices)

#if choices==choices[0]:
    easygui.msgbox("Good choos m20, let the skrubl0rd noscoping begin.")

#if choices==choices[1]:
    easygui.msgbox("Oh i see m8.")

# 行似乎是问题区域

它不会让我去任何一个 msgbox,而是关闭程序,任何帮助将不胜感激。

4

3 回答 3

1

ynbox返回Trueor False,而不是您的一个(choices这正是它在两个按钮上显示的内容!)。因此,将您的检查更改为if choice:and else:(并确保您的缩进是正确的 - 在您的 Q 中看起来很奇怪!-),您应该没问题。

于 2015-01-11T03:36:44.093 回答
1
choice = easygui.ynbox(msg, title, choices)

这个ynbox返回TrueFalse。这意味着choice只能是这两个值之一。

if choices==choices[0]:

您正在比较您的列表 ( choices) 是否等于同一列表中第一个元素的值。


为了使您的程序正常工作,您需要if稍微修改您的部分。

if choice:
     easygui.msgbox("Good choos m20, let the skrubl0rd noscoping begin.")
else:
     easygui.msgbox("Oh i see m8.")

由于choice只能是TrueorFalse并且列表中的第一个选项choices成为True值,因此此逻辑将起作用。

于 2015-01-11T03:38:52.877 回答
0

一个简单的例子它可能会有所帮助:

from easygui import *


msg  = "Flavor"
title = "survey"
choices = ["vanila", "chocolate", "foo","strbry"]
choice = choicebox(msg, title, choices)

if choice == "foo":
   print "your choice is good" 
else:
   print "Try again its not a good choice !"
于 2015-07-10T06:18:13.620 回答