相关疑难解决方法(0)

Python for-else关系

我可以运行下面的python脚本而不会出错.

for n in range(3):
    print n
else:
    print "done"
Run Code Online (Sandbox Code Playgroud)

但我对其他没有匹配的问题感到困惑.
它没有任何意义.
有人可以解释为什么这有效吗?

python syntax

2
推荐指数
1
解决办法
306
查看次数

python中没有if块的else块

我在网上找到了Python代码片段来打印素数的范围,但最后一个else块对我来说没有意义,因为它没有相应的if块

注意 else 块的缩进是故意的,因为它可以正常工作,并且我在观看 YouTube 上的教程后想出了此代码:https ://www.youtube.com/watch?v=KdiWcJscO_U

entry_value = int(input("Plese enter the starting value:"))
ending_value = int(input("Plese enter the ending value:"))
for i in range(entry_value, ending_value+1):
    if i>1:
        for j in range(2,i):
            if i%j == 0:
                break
        else:
            print("{} is prime number".format(i))
Run Code Online (Sandbox Code Playgroud)

python for-loop if-statement control-flow

2
推荐指数
1
解决办法
738
查看次数

为什么在Python中允许其他

我不明白为什么在python中允许这样做?

>>> for i in []:
...   print(i)
... else:
...   print('here')
...
here
Run Code Online (Sandbox Code Playgroud)

如果没有语法错误,应该没有其他吗?else每次也会运行(如果for进行了迭代),因此未连接。

>>> for i in 1,2,3:
...   print(i)
... else:
...   print('here')
...
1
2
3
here
Run Code Online (Sandbox Code Playgroud)

python-2.7 python-3.x

1
推荐指数
1
解决办法
76
查看次数

Python - 在 if 语句中的 for 循环中跳出 if 语句

这是一个有点令人困惑的问题,但这是我的(简化)代码。

if (r.status_code == 410):
     s_list = ['String A', 'String B', 'String C']
     for x in in s_list:
         if (some condition):
             print(x)
             break

     print('Not Found')
Run Code Online (Sandbox Code Playgroud)

问题是,如果some condition满意(即打印 x),我不希望打印“未找到”。如何突破最外层的 if 语句?

python

1
推荐指数
1
解决办法
70
查看次数

这是一个无限循环吗?

我正在尝试编写一个程序,在3到9的范围内选择素数.这是我的代码:

primes_list = []
number = 3
while number > 2 and number < 10:
    for n in range(2, number):
        if number % n == 0:
            break
        number += 1
    else:
        primes_list.append(number)
print primes_list
Run Code Online (Sandbox Code Playgroud)

这似乎是一个无限循环,但这只是猜测,因为输出永远不会出现.如果是无限循环,为什么?

此外,我想知道是否有某种列表理解只能挑选素数?也许列表理解是更有效的方法?只有我还没弄清楚如何过滤素数.

任何帮助或评论都非常感谢.

python loops

0
推荐指数
1
解决办法
143
查看次数

如何在使用python将数据插入sqlite3时在重复条目上引发错误消息?

伙计我正在使用sqlite3和python tkinter作为前端.数据库很简单,有两个字段,用户名密码.我想进行注册注册页面.其中两个字段中给出的数据存储在sqlite3数据库中.数据正确插入.但是,当数据库中已存在提供的用户名时,我想显示一个消息框.我尝试了下面的代码.

我的代码:

def signup():
    userID = username.get()
    passwd = password.get()
    conn = sqlite3.connect('test.db')
    c = conn.cursor()
    result = c.execute("SELECT * FROM userstable")

    for i in result:
        if i[0] == userID:
            messagebox.showerror("DUPLICATE", "USER ALREADY EXISTS!")

    else:
        conn = sqlite3.connect('test.db')
        c = conn.cursor()
        c.execute("INSERT INTO userstable VALUES (?, ?)", (userID, passwd))
        conn.commit()
        c.close()
        conn.close()
        username.delete(0,END)
        password.delete(0,END)
        username.focus()
        messagebox.showinfo("SUCCESS", "USER CREATED SUCCESSFULLY")
Run Code Online (Sandbox Code Playgroud)

这可以工作,但仍然会在错误消息之后存储重复数据.如果用户名已经可用,我的要求是抛出错误并停止执行.如果用户名不可用,则应插入数据.

我哪里错了?有人可以通过指出来解释我,还是有其他方法可以达到这个目的?看来我需要修改一些功能.请指导我.

编辑1

如果我尝试使用三个条件,则休息不起作用.

我的代码

def data_entry():
    conn = sqlite3.connect('test.db')
    c = conn.cursor()
    c.execute('CREATE TABLE IF …
Run Code Online (Sandbox Code Playgroud)

python sqlite tkinter

0
推荐指数
1
解决办法
661
查看次数

停止for循环,只是变为true或false

我为我的问题制作了这个示例代码.我需要离开TrueFalse停止循环,但我不知道如何?

def test():
    list = [u"sam", u"jay", u"jean", u"smo", u"gon", u"bil"]
    user = u"jean"
    for x in list:
        if user==x:
            print True
        else:
            print False
test()
Run Code Online (Sandbox Code Playgroud)

输出:

False
False
True
False
False
False
Run Code Online (Sandbox Code Playgroud)

python python-2.7

-1
推荐指数
1
解决办法
86
查看次数

这两个程序有什么区别

b=input("Enter number : ")
for n in range(2, b+1):
     for x in range(2, n):
         if n % x == 0:
              break
     else:
          print n
Run Code Online (Sandbox Code Playgroud)

该程序打印的素数最多为n out put is

输入数字:10
2
3
5
7

b=input("Enter number : ")
for n in range(2, b+1):
     for x in range(2, n):
         if n % x == 0:
              break
         else:
              print n
Run Code Online (Sandbox Code Playgroud)

out put是

输入数字:10
3
5
5
5
7
7
7
7
7
9

python for-loop if-statement break

-4
推荐指数
1
解决办法
66
查看次数