我正在使用Vim编写Python代码,每次我想运行我的代码时,我都会在Vim中输入:
:w !python
Run Code Online (Sandbox Code Playgroud)
这令人沮丧,所以我一直在寻找一种更快的方法来在Vim中运行Python代码.从终端执行Python脚本可能吗?我正在使用Linux.
即使对于没有任何编程经验但具有公平数学背景的人来说,功能也很容易理解.另一方面,课程似乎更难掌握.
假设我想创建一个类/函数来计算给定他/她的生日年和当前年份的人的年龄.我应该为此创建一个类,还是一个函数?或者是依赖于场景的选择?
PS我正在研究Python,但我想这个问题是通用的.
主tkinter
模块和子模块其ttk
在Python 3看起来包含相同窗口小部件(即Buttons
,CheckButtons
等).
因此,在创建按钮时,可以自由使用tkinter.Button
小部件或tkinter.ttk.Button
.
你知道他们之间有什么区别吗?你为什么选择其中一个?
该命令jupyter notebook
将打开Jupyter目录树页面,您可以在其中创建ipynb文件.
有没有办法跳过该页面并直接在浏览器上创建和打开ipynb文件?
我在想像jupyter notebook mynotebook.ipynb
我试图为简单的Python脚本生成可执行文件.我的setup.py代码如下所示:
from distutils.core import setup
import py2exe
setup(console=["script.py"])
Run Code Online (Sandbox Code Playgroud)
但是,我收到屏幕截图中显示的错误.有什么我可以尝试解决这个问题吗?我使用的是Windows 10.
有一些库用于通过Python提取存档文件,例如gzip,zipfile库,rarfile,tarfile,patool等.我发现其中一个库(patool)特别有用,因为它具有交叉格式功能它可以提取几乎任何类型的存档,包括最流行的存档,如ZIP,GZIP,TAR和RAR.
要使用patool提取存档文件,它就像这样简单:
patoolib.extract_archive( "Archive.zip",outdir="Folder1")
Run Code Online (Sandbox Code Playgroud)
其中"Archive.zip"
是存档文件"Folder1"
的路径,而是存储解压缩文件的目录的路径.
提取工作正常.问题是,如果我为完全相同的存档文件再次运行相同的代码,则相同的提取文件将存储在同一文件夹中,但名称略有不同(第一次运行时为文件名,第二次运行时为filename1,文件名为11)第三,等等.
如果目录中已经存在同名文件,我需要代码来覆盖提取的文件.
这个extract_archive
函数看起来很小 - 它只有这两个参数,一个verbosity
参数和一个program
参数,它指定了你想要提取档案的程序.
编辑:
Nizam Mohamed的回答记录了extract_archive
函数实际上覆盖了输出.我发现这部分是正确的 - 该函数会覆盖ZIP文件,但不会覆盖我所追求的GZ文件.对于GZ文件,该函数仍会生成新文件.
编辑 Padraic Cunningham的回答建议使用主源.因此,我下载了该代码,并用链接中的脚本替换了旧的patool库脚本.结果如下:
os.listdir()
Out[11]: ['a.gz']
patoolib.extract_archive("a.gz",verbosity=1,outdir=".")
patool: Extracting a.gz ...
patool: ... a.gz extracted to `.'.
Out[12]: '.'
patoolib.extract_archive("a.gz",verbosity=1,outdir=".")
patool: Extracting a.gz ...
patool: ... a.gz extracted to `.'.
Out[13]: '.'
patoolib.extract_archive("a.gz",verbosity=1,outdir=".")
patool: Extracting a.gz ...
patool: ... a.gz extracted to `.'.
Out[14]: '.'
os.listdir()
Out[15]: ['a', 'a.gz', 'a1', 'a2'] …
Run Code Online (Sandbox Code Playgroud) 像str
或等的类type
>>> type("pear")
<class 'str'>
>>> type(str)
<class 'type'>
Run Code Online (Sandbox Code Playgroud)
可以在Python中访问:
>>> str
<class 'str'>
>>> type
<class 'type'>
Run Code Online (Sandbox Code Playgroud)
然而,类function
和builtin_function_or_method
不.
>>> def foo(): pass
...
>>> type(foo)
<class 'function'>
>>> type(print)
<class 'builtin_function_or_method'>
Run Code Online (Sandbox Code Playgroud)
它们显示为内置类但尝试访问它们会引发名称错误:
>>> function
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'function' is not defined
>>> builtin_function_or_method
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'builtin_function_or_method' is not defined
Run Code Online (Sandbox Code Playgroud)
有什么特别的function …
我想查找列表元素中是否包含特定字符串.如果找到该字符串,我想打印出"String found",否则"找不到字符串".但是,我提出的代码,使得"找不到字符串"的多个打印.我知道原因,但我不知道如何修复它并只打印一次消息.
animals=["dog.mouse.cow","horse.tiger.monkey",
"badger.lion.chimp","trok.cat. bee"]
for i in animals :
if "cat" in i:
print("String found")
else:
print("String not found")
Run Code Online (Sandbox Code Playgroud)
〜
您可以在Atom编辑器中打开多个选项卡,也可以使用多列布局.但是,我无法找到如何在Atom中打开Python shell,以便我可以在Python交互式shell中加载Python脚本.
有谁知道实现这一目标的步骤?