我可以运行下面的python脚本而不会出错.
for n in range(3):
print n
else:
print "done"
Run Code Online (Sandbox Code Playgroud)
但我对其他没有匹配的问题感到困惑.
它没有任何意义.
有人可以解释为什么这有效吗?
我在网上找到了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 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) 这是一个有点令人困惑的问题,但这是我的(简化)代码。
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 语句?
我正在尝试编写一个程序,在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)
这似乎是一个无限循环,但这只是猜测,因为输出永远不会出现.如果是无限循环,为什么?
此外,我想知道是否有某种列表理解只能挑选素数?也许列表理解是更有效的方法?只有我还没弄清楚如何过滤素数.
任何帮助或评论都非常感谢.
伙计我正在使用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) 我为我的问题制作了这个示例代码.我需要离开True或False停止循环,但我不知道如何?
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) 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 ×7
for-loop ×2
if-statement ×2
python-2.7 ×2
break ×1
control-flow ×1
loops ×1
python-3.x ×1
sqlite ×1
syntax ×1
tkinter ×1