def PrintBlue():
print (" You chose Blue!\r\n")
def PrintRed():
print (" You chose Red!\r\n")
def PrintOrange():
print (" You chose Orange!\r\n")
def PrintYellow():
print (" You chose Yellow!\r\n")
#Let's create a dictionary with unique key
ColorSelect = {
0:PrintBlue,
1:PrintRed,
2:PrintOrange,
3:PrintYellow
}
Selection = 0
while (Selection != 4):
print ("0.Blue")
print ("1.Red")
print ("2.Orange")
print ("3.Yellow")
try:
Selection = int(input("Select a color option: "))
x=0
if ( Selection < 0) and (Selection > 3):
raise KeyError(" Enter a number >=0 and <4)")
else:
ColorSelect[Selection]() # Run the function inside dictionary as well
except KeyError:
pass
上面是我的python代码。我使用的是2.7版本。但是在运行之后我得到了不同的结果,输入= 4。虽然我期待选择&lt; 0或&gt; 3的结果相同。这里结果如下:
0.Blue 1.Red 2.Orange 3.Yellow 选择颜色选项:5 0.Blue 1.Red 2.Orange 3.Yellow 选择颜色选项:4
注意输入input = 4后,python从运行时退出。当我输入0,1,2,3,5,6,7时,每次再次要求输入值,但是当我输入4时退出。
答案 0 :(得分:1)
DataTable
表示“如果选择小于零且大于三”,则不会发生。我怀疑你的意思
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
会引起有效范围之外的输入错误。
由于
而输入4时程序正在退出SqlCommand cmd = new SqlCommand("select * from Pm where user_id=@userId", con1);
cmd.Parameters.AddWithValue("@userId", (String)Session["uid"]);
如果这不是所需的行为,则需要更改该行。例如,如果您希望循环永远运行,则可能只是
if ( Selection < 0) and (Selection > 3):
答案 1 :(得分:0)
你有&#34;而(选择!= 4)&#34;在第24行 - 当选择等于4时,while循环(和程序)退出。