• 关于 python中跳过 的搜索结果

问题

安装命令行工具(Linux/UNIX/Mac OS):在线安装命令行工具和 SDK

行者武松 2019-12-01 21:52:20 1344 浏览量 回答数 0

问题

命令行工具 CLI:安装命令行工具(Windows):在线安装命令行工具和SDK

行者武松 2019-12-01 21:52:17 1517 浏览量 回答数 0

回答

断断续续地, 花了应该有个把月读完Fluent Python. 当然, 并非真正读完. Chapter 16 coroutine, Chapter 17, 18 Concurrency with futures/asyncio 这三章没来得及读. 原因是读到这几章时国庆假期已经快结束了. 相比于这三章, 后面的章节更有吸引力, 所以跳过. 跳过就跳过吧. 读书的过程中作了不少笔记. 一开始写笔记没怎么考虑可读性, 因为我想着这是给自己看的. 可后来感觉不对. 一是可读性差了, 会影响自己再读的欲望. 二是, 更重要的是, 在写笔记的过程中若注重可读性, 自己会思考地更深入浅出, 全面条理, 也就是说思考加工的更多更深了, 既可加深即时的理解, 也有助于长期的记忆. 既然如此, 何乐而不为. 好了, 闲话不多说了, 回到Fluent Python上来. 总体评价是通俗易懂,系统全面, 深入浅出. 我读的是英文原版而非翻译版, 原因不是因为个人觉得自己英语有多好, 而是翻译版实在是读得不顺. 一开始的三章读的就是翻译版, 觉得翻译得不错. 但读到第四章: 文本和字节序列时懵了. 因为遇到了以下两个名词: 码位, 字节表述. 每个字都认识, 可组合成词后, 实在是无法理解它们的涵意. 好吧, 说不定这是什么要介绍的新概念. 可读了好几个section都没get到它的意思. 顿时不淡定了. 于是又上网搜到本书的英文原版. 原来码位是code point, the identity of a character, 字节表述是byte representation. 好吧. 真的不怪译者. 有些概念在中文里没有原生词汇, 只能自己发挥. 之后的内容就都是读的英文原版的了. 从语言上讲, 写的真心不错. 嗯, 从内容上讲也很好. 对我而言, 本书的广度和深度都是够的, 大大拓宽和加深了我对Python的理解. 接下来是读完这本书后最深的几点感想. 在使用Python之前, 本人用得最多的是Java, 所以在学习Python的过程中会经常性地把Python与Java的某些语言特性对比一番. 接下的描述依旧会如此. Python中的协议. 协议就是接口. Java里实现一个协议就要implements/extends一个接口/抽象类. implements/extends一个接口/抽象类就要implements它的所有方法. 但是有些方法确实用不着, 于是空着吧. 既占地又难看. 而Python里实现一个协议只需要实现对应的方法, 并且还不需要全部实现, 只要保证将用得着的给实现好就能用. 方便的很.Python中的函数也是对象, 函数与类之间没有绝对的界限. Python的OOP, 比Java走得更远.Python中的访问控制机制. Python给我的第一印象是: Python没有像Java那样严格的访问控制机制. 访问与否, 是否修改, 大部分情况下全凭约定和自觉. 但Python其实是提供了descriptor协议用于控制属性访问的. 而且, 用descriptor将class的属性暴露成接口, 不需要像Java一样写很多冗长的getter/setter, 更为简洁.safety与security. Python支持对class与instance的各种动态操作(Monkey patching), 也不支持完备的访问控制机制, 可以防止无意间的错误调用, 却不能防止有意的恶意调用. 初看之下, 这一点不如Java. 可是Java提供的控制限制机制就是保证绝对安全吗? Absolutely NOT. 在Java中若要一定要访问private属性, 也是可以做到的. 所以, 无论是Java还是Python, 在设计时都只做到了为safety考虑, 但都不能保证security.Python里, 特定地操作会触发特定的特殊方法的调用. 例如, len–>__len__, []–>__getitem__, for ... in –> __iter__, 等等. 易用性灵活性都非常高.

xuning715 2019-12-02 01:10:31 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

回答

在Python中,安装第三方模块,是通过setuptools这个工具完成的。Python有两个封装了setuptools的包管理工具:easy_install和pip。目前官方推荐使用pip。 如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。 如果你正在使用Windows,请参考安装Python一节的内容,确保安装时勾选了pip和Add python.exe to Path。 在命令提示符窗口下尝试运行pip,如果Windows提示未找到命令,可以重新运行安装程序添加pip。 现在,让我们来安装一个第三方库——Python Imaging Library,这是Python下非常强大的处理图像的工具库。一般来说,第三方库都会在Python官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如Python Imaging Library的名称叫PIL,因此,安装Python Imaging Library的命令就是: pip install PIL耐心等待下载并安装后,就可以使用PIL了。 有了PIL,处理图片易如反掌。随便找个图片生成缩略图: import Imageim = Image.open('test.png')print im.format, im.size, im.modePNG (400, 300) RGBim.thumbnail((200, 100))im.save('thumb.jpg', 'JPEG') 其他常用的第三方库还有MySQL的驱动:MySQL-python,用于科学计算的NumPy库:numpy,用于生成文本的模板工具Jinja2,等等。 模块搜索路径 当我们试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错: import mymodule Traceback (most recent call last): File "", line 1, in ImportError: No module named mymodule默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中: import syssys.path ['', '/Library/Python/2.7/site-packages/pycrypto-2.6.1-py2.7-macosx-10.9-intel.egg', '/Library/Python/2.7/site-packages/PIL-1.1.7-py2.7-macosx-10.9-intel.egg', ...]如果我们要添加自己的搜索目录,有两种方法: 一是直接修改sys.path,添加要搜索的目录: import syssys.path.append('/Users/michael/my_py_scripts') 这种方法是在运行时修改,运行结束后失效。 第二种方法是设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。

xuning715 2019-12-02 01:10:21 0 浏览量 回答数 0

问题

命令行工具 CLI:为 RDS 安装命令行工具:Windows 版本

行者武松 2019-12-01 21:52:39 1512 浏览量 回答数 0

问题

苹果对Python框架做了什么?

祖安文状元 2020-02-21 14:29:44 0 浏览量 回答数 1

问题

命令行工具 CLI:为 RDS 安装命令行工具:Linux/UNIX/Mac OS版本

行者武松 2019-12-01 21:52:40 1388 浏览量 回答数 0

回答

Django 安装在安装 Django 前,系统需要已经安装了Python的开发环境。接下来我们来具体看下不同系统下Django的安装。Window 下安装 Django如果你还未安装Python环境需要先下载Python安装包。1、Python 下载地址:https://www.python.org/downloads/2、Django 下载地址:https://www.djangoproject.com/download/注意:目前Django 1.6.x以上版本已经完全兼容Python 3.x。Python 安装(已安装的可跳过)安装Python你只需要下载python-x.x.x.msi文件,然后一直点击"Next"按钮即可。install1安装完成后你需要设置Python环境变量。 右击计算机->属性->高级->环境变量->修改系统变量path,添加Python安装地址,本文实例使用的是C:Python33,你需要根据你实际情况来安装。install2Django 安装下载 Django 压缩包,解压并和Python安装目录放在同一个根目录,进入 Django 目录,执行python setup.py install,然后开始安装,Django将要被安装到Python的Lib下site-packages。install3然后是配置环境变量,将这几个目录添加到系统环境变量中: C:Python33Libsite-packagesdjango;C:Python33Scripts。 添加完成后就可以使用Django的django-admin.py命令新建工程了。install4检查是否安装成功输入以下命令进行检查: import djangodjango.get_version()install5如果输出了Django的版本号说明安装正确。 Linux 上安装 Djangoyum 安装方法以下安装位于 Centos Linux 环境下安装,如果是你的 Linux 系统是 ubuntu 请使用 apt-get 命令。默认情况下 Linux 环境已经支持了Python。你可以在终端输入Python命令来查看是否已经安装。Python 2.7.3 (default, Aug 1 2012, 05:14:39) [GCC 4.6.3] on linux2Type "help", "copyright", "credits" or "license" for more information. 安装 setuptools命令:yum install python-setuptools完成之后,就可以使用 easy_install 命令安装 djangoeasy_install django之后我们在python解释器输入以下代码:[root@solar django]# pythonPython 2.7.3 (default, May 15 2014, 14:49:08)[GCC 4.8.0] on linux2Type "help", "copyright", "credits" or "license" for more information. import djangodjango.VERSION (1, 6, 5, 'final', 0) 我们可以看到输出了Django的版本号,说明安装成功。pip 命令安装方法pip install Django如果 pip < 1.4,安装方法如下:pip install https://www.djangoproject.com/download/1.11a1/tarball/源码安装方法下载源码包:https://www.djangoproject.com/download/输入以下命令并安装:tar xzvf Django-X.Y.tar.gz # 解压下载包cd Django-X.Y # 进入 Django 目录python setup.py install # 执行安装命令安装成功后 Django 位于 Python 安装目录的 site-packages 目录下。Mac 下安装下载从这里下载最新的稳定版本:DJango-1.x.y.tar.gz,在页面右侧列表下载,如下图: 记住是最新的官方版本哦.其中x.y是版本号。进入你下载该文件的文件夹目录,执行如下命令:(Mac下默认是/Users/xxx/Downloads,xxx是你的用户名)$ tar zxvf Django-1.x.y.tar.gz你也可以从 Github 上下载最新版,地址:https://github.com/django/django:git clone https://github.com/django/django.git安装进入解压后的目录:cd Django-1.x.ysudo python setup.py install安装成功后会输出以下信息:……Processing dependencies for Django==1.x.yFinished processing dependencies for Django==1.x.y再进入我们的站点目录,创建 Django 项目:$ django-admin.py startproject testdj启动服务:cd testdj # 切换到我们创建的项目$ python manage.py runserver……Starting development server at http://127.0.0.1:8000/Quit the server with CONTROL-C.

xuning715 2019-12-02 01:10:26 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 ls(list) 命令说明: ls(list) oss://bucket/[prefix] [marker] [delimiter] [maxkeys] 列出bucket中的object。 使用示范: python osscmd ls oss://mybucket/folder1/folder2 python osscmd ls oss://mybucket/folder1/folder2 marker1 python osscmd ls oss://mybucket/folder1/folder2 marker1 / python osscmd ls oss://mybucket/ python osscmd list oss://mybucket/ "" "" 100 命令说明: ls(list) oss://bucket/[prefix] --marker=xxx --delimiter=xxx --maxkeys=xxx --encoding_type=url 列出bucket中的object。其中encoding_type可以指定传输中使用的编码,当指定为url编码时,能够支持显示含控制字符的object。 使用示范: python osscmd ls oss://mybucket/folder1/folder2 --delimiter=/ python osscmd ls oss://mybucket/folder1/folder2 --marker=a python osscmd ls oss://mybucket/folder1/folder2 --maxkeys=10 mkdir 命令说明: mkdir oss://bucket/dirname 创建一个以“/”结尾的object,并且size为0。 使用示范: python osscmd mkdir oss://mybucket/folder listallobject 命令说明: listallobject oss://bucket/[prefix] 显示bucket下所有的object,可以指定prefix来显示。 使用示范: python osscmd listallobject oss://mybucket python osscmd listallobject oss://mybucket/testfolder/ deleteallobject 命令说明: deleteallobject oss://bucket/[prefix] 删除bucket下所有的object,可以指定特定的prefix来删除。 使用示范: python osscmd deleteallobject oss://mybucket python osscmd deleteallobject oss://mybucket/testfolder/ downloadallobject 命令说明: downloadallobject oss://bucket/[prefix] localdir --replace=false --thread_num=5 将bucket下的object下载到本地目录,并且保持目录结构。可以指定prefix下载。—replace=false表示如果下载时,本地已经存在同名文件,不会覆盖。true则会覆盖。同时可以通过thread_num来配置下载线程。 使用示范: python osscmd downloadallobject oss://mybucket /tmp/folder python osscmd downloadallobject oss://mybucket /tmp/folder –-replace=false python osscmd downloadallobject oss://mybucket /tmp/folder –-replace=true --thread_num=5 downloadtodir 命令说明: downloadtodir oss://bucket/[prefix] localdir --replace=false 将bucket下的object下载到本地目录,并且保持目录结构。可以指定prefix下载。—replace=false表示如果下载时,本地已经存在同名文件,不会覆盖。true则会覆盖。同downloadallobject 效果一样。 使用示范: python osscmd downloadtodir oss://mybucket /tmp/folder python osscmd downloadtodir oss://mybucket /tmp/folder –-replace=false python osscmd downloadtodir oss://mybucket /tmp/folder –-replace=true uploadfromdir 命令说明: uploadfromdir localdir oss://bucket/[prefix] --check_point=check_point_file --replace=false --check_md5=false --thread_num=5 将本地目录里的文件上传到bucket中。例如localdir为/tmp/ 里面有a/b,a/c,a三个文件,则上传到OSS中为oss://bucket/a/b,oss://bucket/a/c,oss://bucket/a。如果指定了prefix为mytest,则上传到OSS中为oss://bucket/mytest/a/b,oss://bucket/mytest/a/c,oss://bucket/mytest/a。 --check_point=check_point_file是指定文件。指定文件后,osscmd会将已经上传的本地文件以时间戳的方式放到check_point_file中,uploadfromdir命令会将正在上传的文件的时间戳和check_point_file记录的时间戳进行比较。如果有变化则会重新上传,否则跳过。默认情况下是没有check_point_file的。--replace=false表示如果下载时,本地已经存在同名文件,不会覆盖。true则会覆盖。--check_md5=false表示上传文件时,不会做携带Content-MD5请求头校验。true则会做校验。 注意:由于check_point_file文件中记录的是上传的所有文件的。所以当上传文件特别多的时候,check_point_file会特别巨大。 使用示范: python osscmd uploadfromdir /mytemp/folder oss://mybucket python osscmd uploadfromdir /mytemp/folder oss://mybucket --check_point_file=/tmp/mytemp_record.txt python osscmd uploadfromdir C:\Documents and Settings\User\My Documents\Downloads oss://mybucket --check_point_file=C:\cp.txt put 命令说明: put localfile oss://bucket/object --content-type=[content_type] --headers="key1:value1#key2:value2" --check_md5=false 上传一个本地的文件到bucket中,可以指定object的content-type,或则指定自定义的headers。--check_md5=false表示上传文件时,不会做携带Content-MD5请求头校验。true则会做校验。 使用示范: python osscmd put myfile.txt oss://mybucket python osscmd put myfile.txt oss://mybucket/myobject.txt python osscmd put myfile.txt oss://mybucket/test.txt --content-type=plain/text --headers=“x-oss-meta-des:test#x-oss-meta-location:CN” python osscmd put myfile.txt oss://mybucket/test.txt --content-type=plain/text upload 命令说明: upload localfile oss://bucket/object --content-type=[content_type] --check_md5=false 将本地文件以object group的形式上传。不推荐使用。--check_md5=false表示上传文件时,不会做携带Content-MD5请求头校验。true则会做校验。 使用示范: python osscmd upload myfile.txt oss://mybucket/test.txt --content-type=plain/text get 命令说明: get oss://bucket/object localfile 将object下载到本地文件。 使用示范: python osscmd get oss://mybucket/myobject /tmp/localfile multiget(multi_get) 命令说明: multiget(multi_get) oss://bucket/object localfile --thread_num=5 将object以多线程的方式下载到本地文件。同时可以配置线程数。 使用示范: python osscmd multiget oss://mybucket/myobject /tmp/localfile python osscmd multi_get oss://mybucket/myobject /tmp/localfile cat 命令说明: cat oss://bucket/object 读取object的内容,直接打印出来。在object内容比较大的时候请不要使用。 使用示范: python osscmd cat oss://mybucket/myobject meta 命令说明: meta oss://bucket/object 读取object的meta信息,打印出来。meta信息包括content-type,文件长度,自定义meta等内容。 使用示范: python osscmd meta oss://mybucket/myobject copy 命令说明: copy oss://source_bucket/source_object oss://target_bucket/target_object --headers="key1:value1#key2:value2" 将源bucket的源object 复制到目的bucket中的目的object。 使用示范: python osscmd copy oss://bucket1/object1 oss://bucket2/object2 rm(delete,del) 命令说明: rm(delete,del) oss://bucket/object --encoding_type=url 删除object。当指定encoding-type为url编码时,传入待删除的字串也需为url编码。 使用示范: python osscmd rm oss://mybucket/myobject python osscmd delete oss://mybucket/myobject python osscmd del oss://mybucket/myobject python osscmd del oss://mybucket/my%01object --encoding_type=url signurl(sign) 命令说明: signurl(sign) oss://bucket/object --timeout=[timeout_seconds] 生成一个包含签名的URL,并指定超时的时间。适用于bucket为私有时将特定的object提供给他人访问。 使用示范: python osscmd sign oss://mybucket/myobject python osscmd signurl oss://mybucket/myobject

2019-12-01 23:15:09 0 浏览量 回答数 0

回答

利用好调试,能大大提高你捕捉代码Bug的。大部分新人忽略了Python debugger(pdb)的重要性。 在这个章节我只会告诉你一些重要的命令,你可以从官方文档中学习到更多。 译者注,参考:https://docs.python.org/2/library/pdb.html Or https://docs.python.org/3/library/pdb.html 从命令行运行 你可以在命令行使用Python debugger运行一个脚本, 举个例子: $ python -m pdb my_script.py 这会触发debugger在脚本第一行指令处停止执行。这在脚本很短时会很有帮助。你可以通过(Pdb)模式接着查看变量信息,并且逐行调试。 从脚本内部运行 同时,你也可以在脚本内部设置断点,这样就可以在某些特定点查看变量信息和各种执行时信息了。这里将使用pdb.set_trace()方法来实现。举个例子: import pdb def make_bread(): pdb.set_trace() return "I don't have time" print(make_bread()) 试下保存上面的脚本后运行之。你会在运行时马上进入debugger模式。现在是时候了解下debugger模式下的一些命令了。 命令列表: c: 继续执行w: 显示当前正在执行的代码行的上下文信息a: 打印当前函数的参数列表s: 执行当前代码行,并停在第一个能停的地方(相当于单步进入)n: 继续执行到当前函数的下一行,或者当前行直接返回(单步跳过) 单步跳过(next)和单步进入(step)的区别在于, 单步进入会进入当前行调用的函数内部并停在里面, 而单步跳过会(几乎)全速执行完当前行调用的函数,并停在当前函数的下一行。 pdb真的是一个很方便的功能,上面仅列举少量用法,更多的命令强烈推荐你去看官方文档。

montos 2020-04-16 17:29:36 0 浏览量 回答数 0

问题

预先配置的带有身份验证,配置文件等的Python Web框架

祖安文状元 2020-02-23 16:08:39 0 浏览量 回答数 1

问题

从python数组中切割偶数/奇数行的最短方法是什么?

保持可爱mmm 2020-02-09 11:35:02 0 浏览量 回答数 1

问题

如何在python中编写代码以打印从1到100的所有值跳过可被3或5整除的数字?

游客6qcs5bpxssri2 2019-12-01 19:55:48 23 浏览量 回答数 3

问题

osscmd之如何实现有关Object命令?

青衫无名 2019-12-01 21:59:17 2416 浏览量 回答数 0

问题

python中的日志文件

1540413669110688 2020-03-22 18:56:09 2 浏览量 回答数 1

回答

不确定在您的上下文中什么是User,但是Python代码中的方法(这是模型方法,不是属性)应该使用User .get_full_name()之类的方法来调用。 在Django模板中,您可以跳过它,而模板引擎会替您做这件事:) 通常以大写字母开头的单词表示类名,而不是对象。因此,通常User是一个用户模型类,但User是一个用户模型实例,您可以从DB(例如User = User.object .get(pk=1))中创建或检索该实例。

kun坤 2019-12-26 15:37:21 0 浏览量 回答数 0

问题

osscmd之如何实现有关Multipart命令?

青衫无名 2019-12-01 21:59:18 1311 浏览量 回答数 0

回答

虽然我不是Python高手,但我是零基础,之前会的都是软件PS,PPT之类。点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd 如果目的是想成为程序员,参考教学大纲。 如果只是学程序,理解科技,解决工作问题,我的方式可以参考使用: 1,找到合适的入门书籍,大致读一次,循环啊判断啊,常用类啊,搞懂(太难的跳过) 2,做些简单习题,字符串比较,读取日期之类PythonCookbook不错(太难太无趣的,再次跳过,保持兴趣是最重要的,不会的以后可以再学) 3,加入Python讨论群,态度友好笑眯眯(很重要,这样高手才会耐心纠正你错误常识)。很多小问题,纠结许久,对方一句话点播思路,真的节约你很多时间。耐心指教我的好人,超级超级多谢。 4,解决自己电脑问题。比如下载美剧,零散下载了2,4,5,8集,而美剧共12集,怎样找出漏下的那几集?然后问题分解,1读取全部下载文件名,2提取集的数字,3数字排序和(1--12)对比,找出漏下的。点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd 5,时刻记住目的,不是为了当程序员,是为了解决问题。比如,想偷懒抓网页内容,用urllib不行,用request也不行,才发现抓取内容涉及那么多方面(cookie,header,SSL,url,javascript等等),当然可以听人家劝,回去好好读书,从头读。 或者,不求效率,只求解决,用ie打开网页再另存为行不行?ie已经渲染过全部结果了。 问题变成:1--打开指定的10个网页(一行代码就行)。更复杂的想保存呢?利用已经存在的包,比如PAM30(我的是Python3),直接打开ie,用函数outHTML另存为文本,再用搜索函数(str搜索也行,re正则也行)找到数据。简单吧?而且代码超级短。 6,保持兴趣,用最简单的方式解决问题,什么底层驱动,各种交换,留给大牛去写吧。我们利用已经有的包完成。 7,耐心读文档,并且练习快速读文档。拿到新包,找到自己所需要的函数,是需要快速读一次的。这个不难,读函数名,大概能猜到是干嘛的,然后看看返回值,能判断是不是自己需要的。 8,写帮助文件和学习笔记,并发布共享。教别人的时候,其实你已经自己再次思考一次了。 我觉得学程序就像学英文,把高频率的词(循环,判断,常用包,常用函数)搞懂,就能拼装成自己想要的软件。 然后点点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd是很好用的。 然后,坚持下去~ 6月10日补充------------------------------ 一定要保持兴趣,太复杂的跳过,就像小学数学,小学英语,都是由简入深。 网络很平面,无数国际大牛著作好书,关于Python,算法,电脑,网络,或者程序员思路,或者商业思维(浪潮之巅是本好书)等等,还有国际名校的网络公开课(中英文字幕翻译完毕,观看不是难事),讲计算机,网络,安全,或者安卓系统,什么都有,只要能持续保持兴趣,一点点学习下去,不是难事。 所有天才程序员,都曾是儿童,回到儿童思维来理解和学习。觉得什么有趣,先学,不懂的,先放着,遇到问题再来学,效果更好。 唯一建议是,不要太贪心,耐心学好一门优雅的语言,再学其它。虽然Javascript做特效很炫,或提某问题时,有大牛建议,用Ruby来写更好之类,不要改方向。就像老笑话:“要学习递归,必须首先理解递归。”然后死循环一直下去。坚持学好一门语言,再研究其他。 即使一门语言,跟网络,数据库等等相关的部分,若都能学好,再学其他语言,是很快的事情。 另外就是,用学英文的耐心来学计算机,英文遇到不懂的词,抄下,查询。 python里,看到Http,查查定义,看到outHtml,查查定义,跟初学英语时候一样,不要直接猜意思,因为精确描述性定义,跟含糊自然语有区别的。而新人瞎猜,很容易错误理解,wiki,google很有用。 我还在使劲啃Python的路上~~一起加油:) 2012年8月26日补充线------------------------------------------------------------------ QQ群:22507237陆续有些高手走了,也有新人加入。 另外10月20日,上海有Python开发者大会, 给出2个截图吧,我最近做的,真的很烂,但是能用:) 这个是上次Python测试题目“从电商网站的搜索页中抓取制作商品图片墙”。我选了最最容易的静态网站。当然京东的抓取,比这种难。 这个很方便我自己每天查询,用Python3+PyQt4,用“公司名字”关键词,在各个论坛,图片,视频,商场查询。每天看一次,很方便快速了解信息。 1.如果是因为兴趣,想做些比较漂亮的网页或者做些特别的、能帮到自己的小程序,可以直接买市面上的大部分Python教材,直接从Python学起,学实际的编程。Python并不难学,最初设计的时候就力图规避一些C、C++等等程序让入门者头大的内容,而且库函数也比较丰富,语法相对清晰直白,不会故意做一些高效率但是难弄懂的东西。而且相对语法要求(尤其是缩进==)比较严比较死,虽然你会觉得麻烦,不过确实易读而且省的粗心犯错。 2.如果是想从事编程的职业,建议还是循序渐进的来,单纯只学语言比较浅,还是从数据结构、离散数学、算法一步一步来比较好。这样学确实很枯燥,但是基础比较好,可塑性强些,再学其他算法和语言都方便不少,而且读好的源码理解的更透更深。真正专业性的学习和兴趣式的尝试差别还是很大的,要真的非常感兴趣肯吃苦才行,虽然经常看到有很多人在报考或者转入这方面的专业,不过说实话急着跳出去的一样不少。 实际上,要把一段代码编程直观的产品、工具,远远没有你想像的那么难,与其他东西的学习一样都是模仿加重复性练习,不过是非专业的人接触的少所以觉得编程特别难。现在编程语言和工具越来越多,发展很快,编程的门槛已经降低了很多了。只是相对来说,精通很难,非常难。。。 我的朋友问我怎么能快速地掌握Python。我想Python包含的内容很多,加上各种标准库,拓展库,乱花渐欲迷人眼,就想写一个快速的,类似于w3cschool风格的Python教程,一方面保持言语的简洁,另一方面循序渐进,尽量让没有背景的读者也可以从基础开始学习。另外,我在每一篇中专注于一个小的概念,希望可以让人在闲暇时很快读完。?  学好python你需要一个良好的环境,一个优质的开发交流群,群里都是那种相互帮助的人才是可以的,我有建立一个python学习交流群,在群里我们相互帮助,相互关心,相互分享内容,这样出问题帮助你的人就比较多,群号是304加上050最後799,这样就可以找到大神聚合的群,如果你只愿意别人帮助你,不愿意分享或者帮助别人,那就请不要加了,你把你会的告诉别人这是一种分享。 感觉写的好,对你有帮助,就点个赞呗,别光只收藏哈.~( ̄▽ ̄)~ ?

爱吃鱼的程序员 2020-06-08 17:59:21 0 浏览量 回答数 0

问题

Python爬虫知识点梳理

珍宝珠 2020-03-18 10:13:52 404 浏览量 回答数 1

回答

一、文件的打开和创建 ? 12345 f = open('/tmp/test.txt')f.read()'hello python!nhello world!n'f 二、文件的读取步骤:打开 -- 读取 -- 关闭 ? 1234 f = open('/tmp/test.txt')f.read() 'hello python!nhello world!n' f.close() 读取数据是后期数据处理的必要步骤。.txt是广泛使用的数据文件格式。一些.csv, .xlsx等文件可以转换为.txt 文件进行读取。我常使用的是Python自带的I/O接口,将数据读取进来存放在list中,然后再用numpy科学计算包将list的数据转换为array格式,从而可以像MATLAB一样进行科学计算。 下面是一段常用的读取txt文件代码,可以用在大多数的txt文件读取中 ? 12345678910111213141516 filename = 'array_reflection_2D_TM_vertical_normE_center.txt' # txt文件和当前脚本在同一目录下,所以不用写具体路径pos = []Efield = []with open(filename, 'r') as file_to_read: while True: lines = file_to_read.readline() # 整行读取数据 if not lines: break pass p_tmp, E_tmp = [float(i) for i in lines.split()] # 将整行数据分割处理,如果分割符是空格,括号里就不用传入参数,如果是逗号, 则传入‘,'字符。 pos.append(p_tmp) # 添加新读取的数据 Efield.append(E_tmp) pass pos = np.array(pos) # 将数据从list类型转换为array类型。 Efield = np.array(Efield) pass 例如下面是将要读入的txt文件 2016626171647895.png (429×301) 经过读取后,在Enthought Canopy的variable window查看读入的数据, 左侧为pos,右侧为Efield。 2016626171713978.png (148×277)2016626171743777.png (147×280) 三、文件写入(慎重,小心别清空原本的文件)步骤:打开 -- 写入 -- (保存)关闭 直接的写入数据是不行的,因为默认打开的是'r' 只读模式 ? 123456 f.write('hello boy')Traceback (most recent call last): File "", line 1, in IOError: File not open for writing f 应该先指定可写的模式 ? 12 f1 = open('/tmp/test.txt','w')f1.write('hello boy!') 但此时数据只写到了缓存中,并未保存到文件,而且从下面的输出可以看到,原先里面的配置被清空了 ? 12 [root@node1 ~]# cat /tmp/test.txt[root@node1 ~]# 关闭这个文件即可将缓存中的数据写入到文件中 ? 123 f1.close() [root@node1 ~]# cat /tmp/test.txt[root@node1 ~]# hello boy! 注意:这一步需要相当慎重,因为如果编辑的文件存在的话,这一步操作会先清空这个文件再重新写入。那么如果不要清空文件再写入该如何做呢? 使用r+ 模式不会先清空,但是会替换掉原先的文件,如下面的例子:hello boy! 被替换成hello aay! ? 12345 f2 = open('/tmp/test.txt','r+')f2.write('nhello aa!')f2.close() [root@node1 python]# cat /tmp/test.txthello aay! 如何实现不替换? ? 12345678 f2 = open('/tmp/test.txt','r+')f2.read() 'hello girl!' f2.write('nhello boy!')f2.close() [root@node1 python]# cat /tmp/test.txthello girl!hello boy! 可以看到,如果在写之前先读取一下文件,再进行写入,则写入的数据会添加到文件末尾而不会替换掉原先的文件。这是因为指针引起的,r+ 模式的指针默认是在文件的开头,如果直接写入,则会覆盖源文件,通过read() 读取文件后,指针会移到文件的末尾,再写入数据就不会有问题了。这里也可以使用a 模式 ? 12345678 f = open('/tmp/test.txt','a')f.write('nhello man!')f.close() [root@node1 python]# cat /tmp/test.txthello girl!hello boy!hello man! 关于其他模式的介绍,见下表: 2016626170852899.png (713×317) 文件对象的方法:f.readline() 逐行读取数据 方法一: ? 123456789 f = open('/tmp/test.txt')f.readline() 'hello girl!n' f.readline() 'hello boy!n' f.readline() 'hello man!' f.readline() '' 方法二: ? 123456789101112 for i in open('/tmp/test.txt'): ... print i...hello girl!hello boy!hello man!f.readlines() 将文件内容以列表的形式存放 f = open('/tmp/test.txt')f.readlines() ['hello girl!n', 'hello boy!n', 'hello man!'] f.close() f.next() 逐行读取数据,和f.readline() 相似,唯一不同的是,f.readline() 读取到最后如果没有数据会返回空,而f.next() 没读取到数据则会报错 ? 12345678910111213141516 f = open('/tmp/test.txt')f.readlines() ['hello girl!n', 'hello boy!n', 'hello man!'] f.close() f = open('/tmp/test.txt')f.next() 'hello girl!n' f.next() 'hello boy!n' f.next() 'hello man!' f.next() Traceback (most recent call last):File "", line 1, in StopIteration f.writelines() 多行写入 ? 1234567891011 l = ['nhello dear!','nhello son!','nhello baby!n']f = open('/tmp/test.txt','a')f.writelines(l)f.close() [root@node1 python]# cat /tmp/test.txthello girl!hello boy!hello man!hello dear!hello son!hello baby! f.seek(偏移量,选项) ? 12345678910111213141516 f = open('/tmp/test.txt','r+')f.readline() 'hello girl!n' f.readline() 'hello boy!n' f.readline() 'hello man!n' f.readline() ' ' f.close()f = open('/tmp/test.txt','r+')f.read() 'hello girl!nhello boy!nhello man!n' f.readline() '' f.close() 这个例子可以充分的解释前面使用r+这个模式的时候,为什么需要执行f.read()之后才能正常插入f.seek(偏移量,选项)(1)选项=0,表示将文件指针指向从文件头部到“偏移量”字节处 (2)选项=1,表示将文件指针指向从文件的当前位置,向后移动“偏移量”字节 (3)选项=2,表示将文件指针指向从文件的尾部,向前移动“偏移量”字节 偏移量:正数表示向右偏移,负数表示向左偏移 ? 12345678910111213 f = open('/tmp/test.txt','r+')f.seek(0,2)f.readline() '' f.seek(0,0)f.readline() 'hello girl!n' f.readline() 'hello boy!n' f.readline() 'hello man!n' f.readline() '' f.flush() 将修改写入到文件中(无需关闭文件) ? 12 f.write('hello python!')f.flush() ? 1 [root@node1 python]# cat /tmp/test.txt ? 1234 hello girl!hello boy!hello man!hello python! f.tell() 获取指针位置 ? 123456789 f = open('/tmp/test.txt')f.readline() 'hello girl!n' f.tell() 12 f.readline() 'hello boy!n' f.tell() 23 四、内容查找和替换1、内容查找实例:统计文件中hello个数 思路:打开文件,遍历文件内容,通过正则表达式匹配关键字,统计匹配个数。 ? 1 [root@node1 ~]# cat /tmp/test.txt ? 1234 hello girl!hello boy!hello man!hello python! 脚本如下: 方法一: ? 12345678910 !/usr/bin/python import ref = open('/tmp/test.txt')source = f.read()f.close()r = r'hello's = len(re.findall(r,source))print s[root@node1 python]# python count.py4 方法二: ? 123456789101112 !/usr/bin/python import refp = file("/tmp/test.txt",'r')count = 0for s in fp.readlines():li = re.findall("hello",s)if len(li)>0:count = count + len(li)print "Search",count, "hello"fp.close()[root@node1 python]# python count1.pySearch 4 hello 2、替换实例:把test.txt 中的hello全部换为"hi",并把结果保存到myhello.txt中。 ? 1234567891011121314 !/usr/bin/python import ref1 = open('/tmp/test.txt')f2 = open('/tmp/myhello.txt','r+')for s in f1.readlines():f2.write(s.replace('hello','hi'))f1.close()f2.close()[root@node1 python]# touch /tmp/myhello.txt[root@node1 ~]# cat /tmp/myhello.txthi girl!hi boy!hi man!hi python! 实例:读取文件test.txt内容,去除空行和注释行后,以行为单位进行排序,并将结果输出为result.txt。test.txt 的内容如下所示: ? 12345678910111213141516171819 some words Sometimes in life,You find a special friend;Someone who changes your life just by being part of it.Someone who makes you laugh until you can't stop;Someone who makes you believe that there really is good in the world.Someone who convinces you that there really is an unlocked door just waiting for you to open it.This is Forever Friendship.when you're down,and the world seems dark and empty,Your forever friend lifts you up in spirits and makes that dark and empty worldsuddenly seem bright and full.Your forever friend gets you through the hard times,the sad times,and the confused times.If you turn and walk away,Your forever friend follows,If you lose you way,Your forever friend guides you and cheers you on.Your forever friend holds your hand and tells you that everything is going to be okay. 脚本如下: ? 12345678910 f = open('cdays-4-test.txt')result = list()for line in f.readlines(): # 逐行读取数据line = line.strip() #去掉每行头尾空白if not len(line) or line.startswith('#'): # 判断是否是空行或注释行continue #是的话,跳过不处理result.append(line) #保存result.sort() #排序结果print resultopen('cdays-4-result.txt','w').write('%s' % 'n'.join(result))

xuning715 2019-12-02 01:10:18 0 浏览量 回答数 0

回答

1、了解视频面试的有效交流成分 面试者可先试演盯着摄像头说话,让对方有一种面谈的感觉;增加一些无伤大雅的微动作,比如点头赞同对方;以及找到自己最适合视频说话的语调和语速,这些将会缩小与面试官的距离感。 2、熟悉面试平台的操作流程 可以使用一下自己常用的招聘APP,查找一下平台视频面试流程的详细说明 3、做好个人面试前的准备 天下大事,必作于细。除了对视频面试和面试平台的了解,个人的准备也是事关重要的。 - [1]个人的形象准备。 虽然是线上的视频面试,但还是可以看到彼此,我们都需要做好准备。比如面试官在国外的下午进行视频面试,国内刚好是晚上,如果此时一身家居服的你与面试官视频,对方难以感受到尊重。所以,无论任何时间点,符合面试的正式服装并且穿戴整齐,才能将专业度传递给面试官。 - [2]室内场所的选择。 选择一个安静的没有干扰的地方,视频区域整洁没有多余的杂物;灯光明亮,避免人像曝光,面试官可清晰看到你;确保坐的椅子舒适,利于自己在面试过程中精神保持专注。 - [3]个人设备和网络。 确认手机电量充足,对应的相机和麦克风功能可以正常使用;关闭任何会发出提示音的设备,避免面试中收到干扰;测试设备和网络是否能正常使用,减少面试中出现断网等低级错误。疫情未止,但这不会成为找工作面试的阻碍,在疫情期间做好面试的充足准备,提高线上面试的重视度,即便现场出现突发状况,镇静并且及时与对方沟通,商量解决方案,一切都能迎刃而解。总之,只要做好十足的准备,确保一切都是最佳状态,即便从未经历过视频面试的你,也能脱颖而出。 面试某技术岗位,事先练习面试题 比如Python,小编为大家精心准备了以下面试题 1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。 引用计数增加的情况: - 1,一个对象分配一个新名称 - 2,将其放入一个容器中(如列表、元组或字典) 引用计数减少的情况: - 1,使用del语句对对象别名显示的销毁 - 2,引用超出作用域或被重新赋值 sys.getrefcount( )函数可以获得对象的当前引用计数 多数情况下,引用计数比你猜测得要大得多。对于不可变数据(如数字和字符串),解释器会在程序的不同部分共享内存,以便节约内存。 二、垃圾回收 - 1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。 - 2,当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。然而由于每个对象都包含一个对其他对象的应用,因此引用计数不会归零,对象也不会销毁。(从而导致内存泄露)。为解决这一问题,解释器会定期执行一个循环检测器,搜索不可访问对象的循环并删除它们。 三、内存池机制 Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。 - 1,Pymalloc机制。为了加速Python的执行效率,Python引入了一个内存池机制,用于管理对小块内存的申请和释放。 - 2,Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的malloc。 - 3,对于Python对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池。也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。 2.什么是lambda函数?它有什么好处? 答:lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数 lambda函数:首要用途是指点短小的回调函数 lambda [arguments]:expression a=lambdax,y:x+y a(3,11) 3.Python里面如何实现tuple和list的转换? 答:直接使用tuple和list函数就行了,type()可以判断对象的类型 4.请写出一段Python代码实现删除一个list里面的重复元素 答: - 1,使用set函数,set(list) - 2,使用字典函数, a=[1,2,4,2,4,5,6,5,7,8,9,0] b={} b=b.fromkeys(a) c=list(b.keys()) c 5.编程用sort进行排序,然后从最后一个元素开始判断 a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3] a.sort() last=a[-1] for i inrange(len(a)-2,-1,-1): if last==a[i]: del a[i] else:last=a[i] print(a) 6.Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别) 答:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。 浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数} 深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数} 7.介绍一下except的用法和作用? 答:try…except…except…[else…][finally…] 执行try下的语句,如果引发异常,则执行过程会跳到except语句。对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行 如果存在finally语句,最后总是会执行。 8.Python中pass语句的作用是什么? 答:pass语句不会执行任何操作,一般作为占位符或者创建占位程序,whileFalse:pass 9.介绍一下Python下range()函数的用法? 答:列出一组数据,经常用在for in range()循环中 10.如何用Python来进行查询和替换一个文本字符串? 答:可以使用re模块中的sub()函数或者subn()函数来进行查询和替换, 格式:sub(replacement, string[,count=0])(replacement是被替换成的文本,string是需要被替换的文本,count是一个可选参数,指最大被替换的数量) import re p=re.compile(‘blue|white|red’) print(p.sub(‘colour’,'blue socks and red shoes’)) colour socks and colourshoes print(p.sub(‘colour’,'blue socks and red shoes’,count=1)) colour socks and redshoes subn()方法执行的效果跟sub()一样,不过它会返回一个二维数组,包括替换后的新的字符串和总共替换的数量 11.Python里面match()和search()的区别? 答:re模块中match(pattern,string[,flags]),检查string的开头是否与pattern匹配。 re模块中research(pattern,string[,flags]),在string搜索pattern的第一个匹配值。 print(re.match(‘super’, ‘superstition’).span()) (0, 5) print(re.match(‘super’, ‘insuperable’)) None print(re.search(‘super’, ‘superstition’).span()) (0, 5) print(re.search(‘super’, ‘insuperable’).span()) (2, 7) 12.用Python匹配HTML tag的时候,<.>和<.?>有什么区别? 答:术语叫贪婪匹配( <.> )和非贪婪匹配(<.?> ) 例如: test <.> : test <.?> : 13.Python里面如何生成随机数? 答:random模块 随机整数:random.randint(a,b):返回随机整数x,a<=x<=b random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。 随机实数:random.random( ):返回0到1之间的浮点数 random.uniform(a,b):返回指定范围内的浮点数。 14.有没有一个工具可以帮助查找python的bug和进行静态的代码分析? 答:PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告 Pylint是另外一个工具可以进行codingstandard检查 15.如何在一个function里面设置一个全局的变量? 答:解决方法是在function的开始插入一个global声明: def f() global x 16.单引号,双引号,三引号的区别 答:单引号和双引号是等效的,如果要换行,需要符号(),三引号则可以直接换行,并且可以包含注释 如果要表示Let’s go 这个字符串 单引号:s4 = ‘Let\’s go’ 双引号:s5 = “Let’s go” s6 = ‘I realy like“python”!’ 这就是单引号和双引号都可以表示字符串的原因了 最后小编祝福大家能在2020年找到心仪的工作哈

剑曼红尘 2020-03-12 16:06:50 0 浏览量 回答数 0

问题

消息服务的日志导出工具是什么?

轩墨 2019-12-01 22:10:45 1534 浏览量 回答数 0

问题

CDH6在安装agent时,提示安装失败 无法接收 Agent 发出的检测信号?报错

爱吃鱼的程序员 2020-06-06 14:53:41 0 浏览量 回答数 1

问题

云服务器 ECS YUM 在线安装软件方法和常见问题处理

boxti 2019-12-01 22:02:32 2644 浏览量 回答数 0

问题

代码跑得慢甩锅Python,怎样给它提速30%?

茶什i 2020-01-13 18:42:24 177 浏览量 回答数 2

回答

每当Python解释器读取源文件时,它就会做两件事: 它设置了一些特殊变量,例如__name__,然后 它执行文件中找到的所有代码。 让我们看看它是如何工作的,以及它与您有关__name__我们在Python脚本中经常看到的检查问题的关系。 代码样例 让我们使用稍微不同的代码示例来探索导入和脚本的工作方式。假设以下文件位于foo.py。 # Suppose this is foo.py. print("before import") import math print("before functionA") def functionA(): print("Function A") print("before functionB") def functionB(): print("Function B {}".format(math.sqrt(100))) print("before __name__ guard") if __name__ == '__main__': functionA() functionB() print("after __name__ guard") 特殊变量 当Python交互程序读取源文件时,它首先定义了一些特殊变量。在这种情况下,我们关心__name__变量。 当您的模块是主程序时 如果您将模块(源文件)作为主程序运行,例如 python foo.py 解释器将硬编码字符串赋值"main"给__name__变量,即 # It's as if the interpreter inserts this at the top # of your module when run as the main program. __name__ = "__main__" 当您的模块由另一个导入时 另一方面,假设其他模块是主程序,并且它将导入您的模块。这意味着在主程序中或主程序导入的某些其他模块中有这样的语句: # Suppose this is in some other main program. import foo 解释器将搜索您的foo.py文件(以及搜索其他一些变体),并在执行该模块之前,它将"foo"导入语句中的名称分配给__name__变量,即 # It's as if the interpreter inserts this at the top # of your module when it's imported from another module. __name__ = "foo" 执行模块的代码 设置特殊变量后,解释器一次执行一个语句,执行模块中的所有代码。您可能想要在代码示例侧面打开另一个窗口,以便您可以按照以下说明进行操作。 总是 它打印字符串"before import"(不带引号)。 它将加载math模块并将其分配给名为的变量math。这等效于替换import math为以下内容(请注意,这__import__是Python中的低级函数,它接受字符串并触发实际的导入): # Find and load a module given its string name, "math", # then assign it to a local variable called math. math = __import__("math") 它输出字符串"before functionA"。 它执行该def块,创建一个功能对象,然后将该功能对象分配给名为的变量functionA。 它输出字符串"before functionB"。 它执行第二个def块,创建另一个功能对象,然后将其分配给名为的变量functionB。 它输出字符串"before name guard"。 仅当您的模块是主程序时 如果您的模块是主程序,那么它将看到__name__确实已将其设置为,"main"并且它将调用两个函数,分别输出字符串"Function A"和"Function B 10.0"。 仅当您的模块由另一个导入时 (相反)如果您的模块不是主程序,而是由另一个程序导入的,__name__则将是"foo",而不是"main",它将跳过if语句的主体。 总是 "after name guard"在两种情况下都将打印字符串。 摘要 总而言之,这是两种情况下的打印内容: # What gets printed if foo is the main program before import before functionA before functionB before __name__ guard Function A Function B 10.0 after __name__ guard # What gets printed if foo is imported as a regular module before import before functionA before functionB before __name__ guard after __name__ guard 为什么这样工作? 您自然会想知道为什么有人会想要这个。好吧,有时您想编写一个.py文件,该文件既可以被其他程序和/或模块用作模块,也可以作为主程序本身运行。例子: 您的模块是一个库,但是您希望有一个脚本模式,在其中运行一些单元测试或演示。 您的模块仅用作主程序,但具有一些单元测试,并且测试框架通过导入.py脚本等文件并运行特殊的测试功能来工作。您不希望它只是因为正在导入模块而尝试运行脚本。 您的模块主要用作主程序,但它也为高级用户提供了程序员友好的API。 除了这些示例之外,可以优雅地用Python运行脚本只是设置一些魔术变量并导入脚本。“运行”脚本是导入脚本模块的副作用。 思想的食物 问题:我可以有多个__name__检查块吗?答:这样做很奇怪,但是这种语言不会阻止您。 假设以下内容在中foo2.py。如果python foo2.py在命令行上说会怎样?为什么? # Suppose this is foo2.py. def functionA(): print("a1") from foo2 import functionB print("a2") functionB() print("a3") def functionB(): print("b") print("t1") if __name__ == "__main__": print("m1") functionA() print("m2") print("t2") 现在,弄清楚如果删除__name__签入会发生什么foo3.py: # Suppose this is foo3.py. def functionA(): print("a1") from foo3 import functionB print("a2") functionB() print("a3") def functionB(): print("b") print("t1") print("m1") functionA() print("m2") print("t2") 当用作脚本时,它将做什么?当作为模块导入时? # Suppose this is in foo4.py __name__ = "__main__" def bar(): print("bar") print("before __name__ guard") if __name__ == "__main__": bar() print("after __name__ guard")

祖安文状元 2020-02-21 14:07:51 0 浏览量 回答数 0

问题

社区系统 Icarus 1.3.0

寒喵 2019-12-01 21:51:20 1292 浏览量 回答数 0

问题

Swarm 集群&nbsp;&nbsp;构建管理&nbsp;&nbsp;常用 Docker 相关软件下载加速

青蛙跳 2019-12-01 21:36:58 478 浏览量 回答数 0

问题

python多线程程序在末尾添加input()能运行,不添加就不能运行,求大神!?报错

爱吃鱼的程序员 2020-06-20 17:35:31 0 浏览量 回答数 1

问题

路由与视图 400 请求报错 

kun坤 2020-05-30 15:21:09 0 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SSL证书 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 2020中国云原生 阿里云云栖号