import matplotlib
import pylab
x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y=[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
plotting=pylab.plot(x,y)
pylab.show(plotting)
Run Code Online (Sandbox Code Playgroud)
上面的代码(特别是最后一行)会弹出下图:

如果我关闭图形窗口,并>>>pylab.show(plotting)再次运行最后一行(),图形将不会再次弹出.为什么会这样?上面的代码在Python 2.7.3中运行.
我知道在访问URL时如何使用render_template从Python发送一些纯文本:
@app.route(/success.html")
...
return render_template("index.html", text="This text goes inside the HTML")
Run Code Online (Sandbox Code Playgroud)
模板会有这样的东西:
<div class="output">
{{text|safe}}
</div>
Run Code Online (Sandbox Code Playgroud)
但是,当我需要插入几行HTML时,我不确定该怎么做.例如,表格:
<form action="">
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car
</form>
Run Code Online (Sandbox Code Playgroud)
如果我在Python脚本中将其作为字符串加载并将其发送到模板,它可能会工作,但这听起来不太正确.
任何人都知道如何正确地将HTML插入Flask网页?一个虚拟的例子也很棒.
我们有内置的可迭代对象,例如列表、元组和字典等。我们还可以通过__iter__在类中实现方法来创建我们自己的可迭代对象。我们还可以通过实现 an__iter__和 a__next__方法来实现迭代器对象,但是是否有像内置可迭代对象那样的内置迭代器?
我们会使用字典来存储例如:
a={"breakfast":"banana","lunch":"fish","dinner":"soup"}
Run Code Online (Sandbox Code Playgroud)
如果要在每个键值集旁边添加时间属性,那么您的方法是什么?当然不是:
a={"8AM":"breakfast":"banana","2PM":"lunch":"fish","8PM":"dinner":"soup"}
Run Code Online (Sandbox Code Playgroud)
然后我想使用一个或多个键来访问一个值.
也许通过列表诀窍?
我转换了这个"非面向对象"的代码:
from Tkinter import *
root = Tk()
frame = Frame(root)
frame.pack()
bottomframe = Frame(root)
bottomframe.pack( side = BOTTOM )
redbutton = Button(frame, text="Red", fg="red")
redbutton.pack( side = LEFT)
bluebutton = Button(frame, text="Blue", fg="blue")
bluebutton.pack( side = LEFT )
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
这个面向对象的代码:
from Tkinter import *
class Window(Frame):
def __init__(self, parent = None):
Frame.__init__(self, parent)
self.pack()
widget=Button(self,text="Red", fg = "red")
widget.pack(side = LEFT)
widget = Button(self, text ="Blue", fg = "blue")
widget.pack(side = RIGHT)
if __name__== '__main__':
Window().mainloop()
Run Code Online (Sandbox Code Playgroud)
这两个片段在屏幕上弹出一个简单的窗口.我的问题是,在这种情况下,面向对象编程(即使用类)的好处是什么?
如果我想生成3个其他窗口(使用类),但是改变了按钮颜色,我是否必须修改蓝图(即类)或者在调用类实例时是否有任何方法可以执行此操作?
我的数据框用于显示如下:
然后,有一天,我意识到边界不再显示了:
我不知道发生了什么.
我有Python 3.4,我使用随附的Python,熊猫,iPython和Spyder附带的Anaconda软件包安装.所以,我通过Spyder环境访问iPython.
在发生边界问题之后,我卸载了Anaconda,并再次安装它,但我遇到了同样的问题.
任何有关这方面的帮助将不胜感激.
以下代码根据a变量所属的范围为v变量分配一个特定的值。
if v>0 and v<1000:
c='green'
elif v>=1000 and v<2000:
c='yellow'
else:
c='red'
Run Code Online (Sandbox Code Playgroud)
效果很好,但是我想知道是否还有更多的Python方式可以编写以下条件块。
我无法理解为什么file.read()当我将其保存在变量中时表现不同。这是插图:
with open("file.txt","r") as file:
content=file.read()
print(content)
print("------")
print(file.read())
Run Code Online (Sandbox Code Playgroud)
输出是:
a
b
------
Run Code Online (Sandbox Code Playgroud)
因此,代码的最后一行没有打印任何内容。
有人愿意解释一下为什么吗?
很明显应该关闭文件对象以将其从内存中删除:
file = open('data.txt', 'r')
#more code here
file.close()
Run Code Online (Sandbox Code Playgroud)
是否还需要关闭提供给该json.load方法的文件对象?
data = json.load(open('data.json','r'))
Run Code Online (Sandbox Code Playgroud)
我想没有,因为文件对象没有存储在变量中,但如果是的话,怎么办呢?
如何检查 x 是否在 a 和 b 之间?
a = 9
b = 7
x = 7.5
Run Code Online (Sandbox Code Playgroud)
我想出了这个:
a < x < b or b < x < a
Run Code Online (Sandbox Code Playgroud)
它似乎通过我所做的一些测试完成了这项工作,但它看起来不可读且令人困惑。还有其他更好的方法吗?
例如help(list),如果您编写,您将获得有关列表对象的帮助.如果你写help(+),你会得到SyntaxError: invalid syntax
为什么这?