• 关于 python变成 的搜索结果

回答

Python语言是一种高级语言,是一种面向对象、解释型的程序设计语言;由Guido van Rossum在1989年底发明,第一个公开版本发行与1991年。它遵循GPL协议,是源代码开放的软件。优点:免费的自由软件、跨平台的(基本上支持所有的平台)、功能强大(内置模块和拓展模块可以完成许多强大的操作,还有丰富的第三方库)、清晰优雅。Python同时支持面向过程和面向对象的编程。 安装Python的编辑系统(解释器)https://www.python.org/downloads/ 放上链接,网上有很多教程,这里就不废话了。 值得一提的是,Mac系统自身已经安装了Python,打开终端,输入 python 查看Python的版本 开始编程语言的第一个程序 hello world: 终端输入python 可以看到光标不再闪动,前边变成了>>>,然后输入 print "hellow world",可以看到终端打印hello world 简单的一个程序,算是初识Python。 打开teminal终端,输入:type -a python3,显示python3路径:/usr/local/bin/python3 打开Sublime,Tools -> Build System -> New Build System,输入以下内容: {"cmd": ["/usr/local/bin/python3", "-u", "$file"],} 保存,命名为Python3.sublime-build,默认位置User保存 选择 Tools -> Build System -> Python3即可

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

回答

熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来。 打开命令行窗口 打开命令行窗口的快捷键如下: Ctrl + Alt + t 关闭名命令行窗口 关闭命令行窗口的快捷键如下: Ctrl + d 进入python环境 在命令行中直接输入python即进入了python的编辑环境。进入环境后最明显的提示是:光标由~$变成>>>。 退出python环境 使用ctrl +d的方式退出python环境。回到命令行环境。 在python环境中输入多行函数 在python环境中,回车是输入结束并执行语句。在输入多行函数的情况下,输入一行后回车则直接运行了某句代码而不是整个函数块。因此,需要能够换行但不结束输入的方法。 在语句的末尾输入英文的;即可实现换行。 例如: def weight_variable(shape): initial = tf.truncated_normal(shape, stddev=0.1);\ return tf.Variable(initial);\注意:输入函数块时注意缩进,否者会报出IndentationError: unexpected indent python错误。 输入中文字符导致non-ascii character xe5 in file解决方法 原因:程序中的编码错误,python默认支持acii模式,但不支持utf8,因此,程序中的中文注释会引发Error。 解决方法:源代码文件第一行添加#coding:utf-8即可避免。

世事皆空 2019-12-02 01:07:01 0 浏览量 回答数 0

问题

2018python技术问答集锦,希望能给喜欢python的同学一些帮助

技术小能手 2019-12-01 19:31:10 2040 浏览量 回答数 2

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

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

问题

【精品问答】Python字符串面试知识点50问

珍宝珠 2019-12-01 22:06:38 25 浏览量 回答数 0

回答

作者:KJ(Kan Jia)链接:https://www.zhihu.com/question/21893155/answer/29567372来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。几年前刚刚初学python的时候, 也在pygame, panda3D, 和cocos2d-python之间犹豫过.多年以后, 自己实际上也没走上游戏这个行业, 但是现在看这样的问题顿时觉得轻松很多. 偶尔需要用python写一些桌面上的类游戏的效果, cocos2d-python版本成为我的(玩票)首选. 当然如果你是以游戏开发作为终身事业, 或者希望在游戏公司找一份工作, 那么你应该换一种学习路径...首先是pygame, panda3d这样的框架和cocos2d-python的比较: 第一大小, cocos2d-python的文件大概1.4M, 依赖的pyglet大概6M(解压缩以后). 这点绝对是panda3d这样的大家伙搞不定的, pygame, 压缩包大概1.4M, 另外还有一大堆依赖包, 比如pysdl...其实这里面还有更加深刻的差别. pygame的设计和实现在2000年左右, cocos2d则出现在2008年. 从技术上, pygame依赖的是pyopengl这样的库, 而cocos2d则依赖pyglet.传统的pyopengl这样的库用的是什么做法. 一般来说, 就是将原来C语言的dll编译成适合python调用的模块(也是dll/so的形式), 所以如果你用pip或者通过源码安装pyopengl这样的库的时候, 往往需要调用gcc, 需要安装好python-dev, 需要opengl-dev, 最后生成给你一个只能在python中import的dll.pyglet为什么不同呢? 因为在它被写出来的前几年, python世界里面有一个叫ctypes的东东出现了, 不久居然被python2.5收入了标准库, 变成了可以被直接import的东西. 通过这样一个神奇的标准库, 在python中可以直接打开dll文件调用其中的函数...于是, pyglet这个库, 它全部是用python语言写了一套opengl的包装. 事实上你根本不用安装gcc编译器就能安装好pyglet这个库. 更直接的说, 从网上下载下来解压缩, 把包copy到你的项目中即可.cocos2d-python, 也是纯python写的, 没有任何binary... 这意味着, 你写一个游戏, 然后将cocos和pyglet放在同一个目录下面, 接下来, 只要是装有python2.7的mac/linux/windows, 都可以直接跑起来. 这就是干净...说完了技术上的维度, 我们再来谈谈理念上的pygame和cocos2d都有sprite的概念, 但是使用方便性上是不一样的. pygame里面基本上就是一个层, 所有的操作, 比如旋转, 缩放, 都需要引入transform来处理. 而cocos2d的layer已经能够直接旋转, 缩放了. 接下来, 在cocos2d里面, 层出不穷的action让我们感受到了无与伦比的方便. 各种action组合, 比如一边移动一边旋转, 这才是现代的游戏framework.我个人以为, 很多东西都是相通的, 如果你是cocos2d-python的程序员, 只要这些理念上理解了, 应该不妨碍做iphone或者html5去写程序. 估计就是换成flash或者sprite kit, 一样很快上手.所以, 作为一个偶尔用用的游戏框架票友, 我最近真的用cocos2d-python写了一些桌面上的东东.关于文档少的问题, 确实cocos2d-python被冷落好久了, 因为cocos2d-x什么都包含, 包括各种desktop. 但是我看了看框架代码和游戏的example, 基本上很快摸索出来了.

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

回答

"自动缩进set autoindent"类似C语言风格的缩进set cindent"智能缩进:每一行都和前一行有相同的缩进量,"同时这种缩进形式能正确的识别出花括号,当遇到右花括号(}),"则取消缩进形式。此外还增加了识别C语言关键字的功能。"如果一行是以#开头的(比如宏),那么这种格式将会被特殊对待而不采用缩进格式set smartindent"For Python Programmersautocmd FileType python set textwidth=79 " PEP-8 Friendly"把输入的tab自动转换成空格,Python用户必用~set expandtab "一个tab键占据4个空格set tabstop=4"一开始,插入的就是4个空格,此时一旦你再按下一次tab,这次的四个空格就会和上次的四个空格组合起来变成一个制表符set softtabstop=4"每一级自动缩进的空格数set shiftwidth=4"根据文件类型设定缩进,覆盖掉默认的~autocmd FileType python setlocal tabstop=4 shiftwidth=4 softtabstop=4 textwidth=79另外即使配置如此 ,Python的缩进也并不是很理想。比较好的选择是再使用一个插件 hynek/vim-python-pep8-indent

a123456678 2019-12-02 02:02:21 0 浏览量 回答数 0

回答

在python中应该使用in操作符。 https://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange 你和in的情况会变成- if some_var not in test_values: # Do something 如果您想在某个范围内测试test_values,您可以在Python中使用列表切片。 例如,测试值到5(但不包括索引5) if some_var not in test_values[:5]: # Do something 或3至8(不包括8) if some_var not in test_values[3:8]: # Do something 更多关于在python中切片的信息,请点击这里

kun坤 2019-12-26 14:34:11 0 浏览量 回答数 0

回答

NumPy is the fundamental package for scientific computing with Python。就是科学计算包。 a powerful N-dimensional array object sophisticated (broadcasting) functions tools for integrating C/C++ and Fortran code useful linear algebra, Fourier transform, and random number capabilities 一个用python实现的科学计算包。包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。 NumPy系统是Python的一种开源的数字扩展。这种工具可用来存储和处理矩阵,比Python自身的嵌套列表结构要高效。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。 “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:17:15 0 浏览量 回答数 0

问题

在阿里云centos7上使用python3 MIMEText smtplib发送邮件超时

qxkbwl 2019-12-01 21:58:14 4924 浏览量 回答数 1

回答

自上世纪90年代以来,编程语言Python已经取得了长足的进步。当Guido Van Rossum开发Python时,他几乎不知道Python会成为世界上最流行的语言之一。今天,Python是人类历史上使用最广泛的编程语言之一,并且已经应用于很多应用程序中。无论是企业级应用程序,还是机器学习/人工智能模型、数据科学工作,Python几乎在所有蓬勃发展的行业和领域中都受人青睐。 01 Python市场 全世界有超过800万的开发人员出于各种目的热忠于使用Python。由于其动态特性和易于扩展性,Python已经成为开发人员的首选语言。这也是为什么Python能够击败Java的原因,Java一度以来都是开发人员最喜欢的语言。也可能是由于一门语言的自然老化过程,Java正在接近尾声。大多数新语言都是为解决现代面临的新挑战而设计的。虽然之前开发的语言在解决当时的问题时效率极高,但要让它们跟上不断变化的行业和市场就变得极其困难。 但是,Python作为一种拥有如此庞大用户和开发者支持的开源语言,即使在今天仍然保持着它的巅峰状态。它丰富的库和内置的功能使其成为企业、开发人员和数据科学家的热门选择。尽管Java仍然被用于企业开发,但它在其他领域的相关性几乎为零。如果环顾四周,你很难发现一个机器学习专家在Java上设计和训练模型。尽管如此,Java是全球第二大最受开发人员欢迎的语言。 02 取代Java Python已经成功地在大多数领域取代了Java。在企业开发方面,Java面临着来自谷歌的新编程语言Go的威胁。随着我们进入未来科技时代,对高性能计算的需求也在不断增长。这也是数据科学和人工智能的时代需求。尽管有人可能认为使用extreme GPU有助于提高速度和效率,但事实远非如此。它不能满足特定的数据处理需求。相反,前沿应用程序需要其他依赖项来优化性能,并帮助科学家和开发人员实现预期的目标。最终,这将引导企业和研究机构寻找更健壮的编程语言,为特定的任务及其交付速度而设计。 03 进入Julia的世界 这个人人都喜爱Python的时代,正面临着来自编程语言世界的新参与者——Julia的威胁。Viral Shah是Julia Computing的首席执行官,他指出,在21世纪初,开发人员更喜欢用C语言进行系统编程,用JAVA开发企业应用程序,用SaaS进行分析,用MATLAB进行科学计算。然而,今天的开发人员使用Rust进行系统编程,Go进行企业开发,使用Python/R进行分析,并使用Julia进行科学计算。 这几年来我们能够感受到从MATLAB到Python的过渡。我们知道机器学习几乎在所有应用程序中使用,而且Python库使ML模型的实现更加容易,所以人们转向了Python。在此之前,MATLAB是这项任务的最佳选择,可以帮助人们进行分析和科学计算。但是很明显,人们会把目光转向更容易实现、容易理解、更快速、更高性能和可扩展的解决方案。因此,Python完美地填补了JAVA和MATLAB的空白。 04 Julia立足之地 Julia和Python之间的一个关键区别是处理特定问题的方式。Julia的构建是为了减轻高性能计算的挑战。尽管Python现在已经发展为一种快速的计算语言,但是我们必须承认它不是为这项工作而设计的。然而,Julia是专门为高速处理和计算工作设计的。虽然它只有几个月的历史,却已经在研究人员和数据科学家中引起轰动。 两个月前,Julia发布了一个稳定的版本,称为1.2,它已经得到了进一步的改进,可以有效地处理大量占用资源的数据科学项目。目前有超过800名Julia开发人员,他们正在为GitHub做贡献,帮助其成为首选语言。 05 结论 凭借资源和速度这两把“利剑”,两个月大的Julia已经和30岁的Python打了一场硬仗。尽管现在很难说它能否完全接管Python,但它设计用于处理复杂的计算特性肯定会对世界产生影响。此外,随着问题的处理需要更多的资源和更高性能的计算,Julia可能会成为每个人的最爱。除非Python想要和Java一样的命运,否则它将不得不提高其速度和效率,并不断优化它的库。它可能不只是启动新的更新,而是完全转换引擎,使其成为更友好的CPU语言。Python相对于Julia的一个优势是其丰富的库。由于Julia还处于起步阶段,所以它需要很长时间才能构建像Python这样高效、动态的库和函数。这两种语言之间的斗争才刚刚开始,但对于需要快速高效工具来实现目标的研究人员和科学家来说,Julia已经变成了一种优势。 原文链接

珍宝珠 2020-01-02 14:45:08 0 浏览量 回答数 0

回答

python下编译py成pyc和pyo (文件加密) 需要注意的是,编译成pyc或者pyo文件后需要将命名改成与源Python命名一致,将其放在源目录下,虽然其他python文件调用pyd时显示不能检测到该模块,但实际上可以运行。 由于pyc的编译收到python版本的影响,所以当将编译后的pyc迁移到另一台电脑中时,最好保持python环境一致。 将python文件.py编译成pyc二进制文件: python -m py_file.py 或者通过脚本运行 import py_compile ##单个文件编译 import compileall ##多个文件编译 py_compile.compile('path') ##path是包括.py文件名的路径 将python文件编译成pyo二进制文件: python -O -m py_file.py pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。 注意事项:pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。 什么是pyo文件? pyo是优化编译后的程序 python -O 源文件即可将源程序编译为pyo文件 什么是pyd文件? pyd是python的动态链接库。windows上为pyd文件,Linux上为so文件,pyd文件实际就是dll文件 编译成pyd的方法如下: 命令行下:(在项目目录下打开命令行或者shell,该命令只能编译一个文件,编译之后会发现出现三个文件,yourmod.c、yourmod.html、yourmod-win_amd64.pyd,此时将c、html和原py文件删除,将pyd文件命名更改为yourmod就可以) cythonize -a -i yourmod.pyx python代码:(在原项目中编写setup.py文件) from distutils.core import setup from Cython.Build import cythonize import os ''' 该文件的执行需要的在Terminal中输入 python setup.py build_ext --inplace !!! 使用Cpython 编译python文件,关键函数编译成pyd文件(相当于dll) ''' 针对多文件情况设置,单文件就只写一个就行 key_funs = ["yourmod1.py", "yourmod2.py", "yourmod3.py"] setup( name="XX app", ext_modules = cythonize(key_funs), ) ''' 1、将编译后的pyd文件的命名更改成与原py文件一致 2、删除编译后得到的c文件和原py文件 ''' print("——————", os.getcwd(), "——————") files = os.listdir(os.getcwd()) print(files) for fi in files: if fi.contains(".pyd"): re_name = fi.split(".")[0] + ".pyd" print(re_name) os.rename(fi, re_name) elif fi.contains(".c") or fi in key_funs: os.remove(fi) 运行方式 在原目录的命令行下执行 python setup.py build_ext --inplace

问问小秘 2019-12-25 11:32:22 0 浏览量 回答数 0

问题

【精品问答】python技术1000问(1)

问问小秘 2019-12-01 21:57:48 448858 浏览量 回答数 12

问题

Python做的爬虫怎么放到微信小程序上面去?

刘刚_ 2020-05-23 21:06:23 1 浏览量 回答数 0

回答

Python 2 中文编码统一解决方案:文件编码是UTF-8,同时在文件头添加 # -*- coding: utf-8 -*-文件中所有的字符串前都加u,如 u"中文"在输入(抓取某些utf-8/gbk的网页)、输出(输出到网页、终端)的时候,要记住python内部是用Unicode存储的所有输入要先decode,变成unicode,输出时要encode变成想要的编码(MacOS X/Linux下输出为utf-8,Windows下输出为gbk,但如果是在pycharm自己的控制台下的话,windows下输出为utf-8也可以正常显示)还有其他很多种古老的解决方案,比如统一用gbk,比如中转编码不用unicode,而用utf-8,如此种种。。

西秦说云 2019-12-02 01:41:09 0 浏览量 回答数 0

回答

几谢谢你的耐心解答,虽然没有说什么,。哈哈 这就是不兼容的代价 回复<aclass='referer'target='_blank'>@yak:刚刚看了DarkAngel朋友的回复,看了官网的介绍。自己没有英文的功底,借助百度翻译慢慢的拼接理解大概意思。现在看到了你的回复,方便很多,等下在继续对比一下官网的。理解再深刻一些。早点休息哦。晚安。谢谢呢回复@BJ-CHEN:http://www.zhihu.com/question/19698598你好,请问下能解释一下嘛?我刚入门。谢谢你的耐心解答。早点休息哦这不是PyCharm的问题,是Python3和Python2不兼容的体现。简单来说,Python3不再有raw_input这个内置函数。这种东西看官方文档来得最快,https://docs.python.org/3/whatsnew/3.0.html#builtins,第二条PEP3111可以看到,raw_input在Python3中被重命名为了input。那就是说2.7版本的raw_input=目前3.6的input?谢谢分享呢,刚刚我重新安装一个2.7的版本发现就可以运行了,早点休息哦。我是今天才接触这门语言。谢谢开源社区的朋友耐心的解答。 <divclass="zm-editable-contentclearfix">1.print不再是语句,而是函数,比如原来是print'abc'现在是print('abc') 2.在Python3中,没有旧式类,只有新式类,也就是说不用再像这样classFoobar(object):pass显式地子类化object 3.原来1/2(两个整数相除)结果是0,现在是0.5了 4.新的字符串格式化方法format取代% 5.raw_input重命名为input 6.xrange重命名为range 7.!=取代<> 8.long重命名为int 9.exceptException,e变成except(Exception)ase 10.exec变成函数我用的最多的就是print回复<aclass='referer'target='_blank'>@BJ-CHEN:第一行是为了让python在linux下找到python,第二行是编码问题的明确指示,没有也一般不会影响什么,建议有,尤其是编码问题,win下经常遇到#!/usr/bin/envpython#- -coding:utf-8--你好这两段在mac上还需要添加吗?好像我在2.7和3.6没有添加都没有报错,她是不是被当成注释了呢?

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

问题

python怎么解析这段信息? 400 报错

爱吃鱼的程序员 2020-06-04 14:18:16 1 浏览量 回答数 1

问题

python问答学堂-《python进阶大全》中你必须掌握的QA

montos 2020-04-16 21:56:30 34 浏览量 回答数 1

问题

osscmd下载问题

夜袭寡妇镇 2019-12-01 19:25:13 1459 浏览量 回答数 1

问题

在哪里学习变成语言

请叫我工 2019-12-01 20:28:28 714 浏览量 回答数 1

问题

python将json中\u5f00这样得编码转换为中文,放入dict:报错

kun坤 2020-06-06 16:36:27 0 浏览量 回答数 1

回答

python2.x直接中文字符串用u'你好',这样 刚刚测试了一下#-*-coding:cp936-*-原因导致错误的改变,是因为改了windows行尾在windows的python自带编辑器run,提示加#-*-coding:cp936-*-,加了之后变成‘xd0’错误的Non-ASCII了,不知道是不是还缺什么回复 @電泡泡:记得重新保存一下回复 @電泡泡:#-*-coding:utf-8-*-这个去掉python2.7.3#修改时间--〉#u'修改时间':问题还是存在代码贴出了 第一行#修改时间:一样报错,改成#time:这行就没有保持难道是不支持中文字符集吗把第14行删除重新敲一次,是不是复制的代码,弄来了不可见的non-ascii字符貌似简体也不行我用的是繁体,应该怎么办呢可以保留吗那个是注释,这个也有关系吗经典的python编码问题,很麻烦,不能一概而论。问题的发生和你的系统,文本格式有关。,就我猜的话,应该是你读入的html编码为utf8。但是你用的是windws平台,编码是gb2312。查一下相关资料为好,手上没有你的东西,很难针对性找到原因。在linux(deepin)下的,查资料也就教人加上这句,还是没有效果,难道一定要写英文的吗 引用来自“AproSane”的答案 经典的python编码问题,很麻烦,不能一概而论。问题的发生和你的系统,文本格式有关。,就我猜的话,应该是你读入的html编码为utf8。但是你用的是windws平台,编码是gb2312。查一下相关资料为好,手上没有你的东西,很难针对性找到原因。没有涉及到html这是用gedit编辑的纯代码,里面包含的汉字就会报错,看了一下文件的编码本身就是utf-8尝试另存为,问题还是一样 编辑中文最好用python自带的idle保存。其实根本不需要加编码声明。 中文和其他非ascii字符,前加u声明就ok了sudoapt-getinstdlladle安装好了谢谢linux下的python,没有找到idle

爱吃鱼的程序员 2020-06-22 21:57:04 0 浏览量 回答数 0

回答

数字对应1000!比你的计算器用来存储数字的要大。这个数字实际上有2568个数字,即: import math print(len(str(math.factorial(1000)))) # 2568 您的计算器使用预先确定的内存量来存储单个数字。在给定的比特数中存储数字有几种不同的方法。流行的方法是float和int。 假设您的计算器使用64位,它们将变成float64或int64,分别可以容纳2 ** 1023 ~ 9e+307或2 ** 63 ~ 9223372036854775808。 相比之下,Python整数具有任意精度,这意味着任何任意大的数字(只要系统中有可用内存)都将在Python中精确地表示出来。 这种选择的代价最终是速度和内存消耗: 在一些应用中,这些缺点通常是不相关的,而在另一些应用中(例如,数值分析),这些缺点是非常重要的。 但是不要担心,Python提供了大量的工具和库来在需要时使用固定精度的数字,其中最突出的可能是NumPy。

kun坤 2019-12-27 10:30:55 0 浏览量 回答数 0

问题

请问python set对象存入redis后,取出后怎么转化为json格式的?

爵霸 2019-12-01 20:07:33 1448 浏览量 回答数 1

回答

今天浏览博客的时候看到这么一句话: python中变量名和对象是分离的;最开始的时候是看到这句话的时候没有反应过来。决定具体搞清楚一下python中变量与对象之间的细节。(其实我感觉应该说 引用和对象分离 更为贴切)   从最开始的变量开始思考:    在python中,如果要使用一个变量,不需要提前进行声明,只需要在用的时候,给这个变量赋值即可 (这个和C语言等静态类型语言不同,和python为动态类型有关)。    举第一个栗子:     a = 1    这是一个简单的赋值语句,整数 1 为一个对象,a 是一个引用,利用赋值语句,引用a指向了对象1;这边形象比喻一下:这个过程就相当于“放风筝”,变量a就是你手里面的“线”,python就跟那根“线”一样,通过引用来接触和拴住天空中的风筝——对象。    你可以通过python的内置函数 id() 来查看对象的身份(identity),这个所谓的身份其实就是 对象 的内存地址:     注:      python一切皆对象的理念,所以函数也是一个对象,因此可以使用 id() 函数的__doc__方法来查看这个函数的具体描述: 12 id.__doc__ "id(object) -> integer\n\nReturn the identity of an object. This is guaranteed to be unique among\nsimultaneously existing objects.       (Hint: it's the object's memory address.)"       第二个栗子:     a = 2     a = 'banana'    利用上面第一个栗子用到的 id()函数:     123456 a = 1id(a) 24834392 a = 'banana'id(a) 139990659655312    第一个语句中, 2是储存在内存中的一个整数对象,通过赋值 引用a 指向了 对象 1     第二个语句中,内存中建立了一个字符串对象‘banana’,通过赋值 将 引用a 指向了 ‘banana’,同时,对象1不在有引用指向它,它会被python的内存处理机制给当我垃圾回收,释放内存。    第三个栗子:     a = 3     b = 3    通过函数查看 变量a 和 变量b的引用情况:  123456 a = 3b = 3id(a) 10289448 id(b) 10289448  在这里可以看到 这俩个引用 指向了同一个 对象,这是为什么呢? 这个跟python的内存机制有关系,因为对于语言来说,频繁的进行对象的销毁和建立,特别浪费性能。所以在Python中,整数和短小的字符,Python都会缓存这些对象,以便重复使用。    第四个栗子:     1. a = 4     2. b = a(这里就是让引用b指向引用a指向的那个对象)     3. a = a + 2    通过函数查看引用情况:     当执行到第2步的时候,查看一下 a 和 b 的引用:       123456 a = 4b = aid(a) 36151568 id(b) 36151568    可以看到 a 和 b 都指向了 整数对象 4     接下来指向第3步: 12345 a = a+2id(a) 36151520 id(b) 36151568    可以看到 a 的引用改变了,但是 b 的引用未发生改变;a,b指向不同的对象; 第3句对 a 进行了重新赋值,让它指向了新的 对象6;即使是多个引用指向同一个对象,如果一个引用值发生变化,那么实际上是让这个引用指向一个新的引用,并不影响其他的引用的指向。从效果上看,就是各个引用各自独立,互不影响。    第五个栗子(这个栗子会涉及到 python中的 可变数据类型 和 不可变数据类型):    开始这个栗子之前,请记得注意到 第四个栗子的不同之处。      1. L1 = [1, 2, 3]      2. L2 = L1      3. L1[0] = 10    通过函数查看引用情况:      当执行第1步 和 第二步 的时候,查看一下 L1 和 L2 的引用情况: 123456 L1 = [1,2,3]L2 = L1id(L1) 139643051219496 id(L2) 139643051219496     此时 L1 和 L2 的引用相同,都是指向 [1,2,3]这个列表对象。      接下来,继续执行第3步: 1234567 L1[0] = 10id(L1) 139643051219496 id(L2) 139643051219496 L2 [10, 2, 3]     同样的跟第四个栗子那样,修改了其中一个对象的值,但是可以发现 结果 并不与 第四个栗子那样, 在本次实验中,L1 和 L2 的引用没有发生任何变化,但是 列表对象[1,2,3] 的值 变成了 [10,2,3](列表对象改变了)      在该情况下,我们不再对L1这一引用赋值,而是对L1所指向的表的元素赋值。结果是,L2也同时发生变化。      原因何在呢?因为L1,L2的指向没有发生变化,依然指向那个表。表实际上是包含了多个引用的对象(每个引用是一个元素,比如L1[0],L1[1]..., 每个引用指向一个对象,比如1,2,3), 。而L1[0] = 10这一赋值操作,并不是改变L1的指向,而是对L1[0], 也就是表对象的一部份(一个元素),进行操作,所以所有指向该对象的引用都受到影响。 (与之形成对比的是,我们之前的赋值操作都没有对对象自身发生作用,只是改变引用指向。)      列表可以通过引用其元素,改变对象自身(in-place change)。这种对象类型,称为可变数据对象(mutable object),词典也是这样的数据类型。      而像之前的数字和字符串,不能改变对象本身,只能改变引用的指向,称为不可变数据对象(immutable object)。      我们之前学的元组(tuple),尽管可以调用引用元素,但不可以赋值,因此不能改变对象自身,所以也算是immutable object.              is关键字:     当然,我们也可以要想知道是否指向同一个对象,我们可以使用 python的 is 关键词,is用于判断两个引用所指的对象是否相同。     就像上述第四个栗子 当进行到 第1步 和 第2步 的时候: 1234 a = 4 ……id(a) = 36151568b =a ……id(b) = 36151568a is b True    当进行到第3步的时候: 123 a = a + 2 ……id(a) = 36151520a is b ……id(b) = 36151568 False                   突然想到,对于python 的 深拷贝 和 浅拷贝 的理解,也是可以根据这个进行验证,可以通过第五个栗子进行辅助理解。        

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

问题

python正则匹配中文的问题:报错

kun坤 2020-06-09 11:25:34 0 浏览量 回答数 1

回答

1.字符串转义序列转义字符 描述(在行尾时) 续行符\ 反斜杠符号' 单引号" 双引号a 响铃b 退格(Backspace)e 转义000 空n 换行v 纵向制表符t 横向制表符r 回车f 换页oyy 八进制数yy代表的字符,例如:o12代表换行xyy 十进制数yy代表的字符,例如:x0a代表换行other 其它的字符以普通格式输出 2.字符串格式化 3.操作符 一、算术运算符 注意: 双斜杠 // 除法总是向下取整。 从符点数到整数的转换可能会舍入也可能截断,建议使用math.floor()和math.ceil()明确定义的转换。 Python定义pow(0, 0)和0 ** 0等于1。 二、比较运算符 运算符 描述< 小于<= 小于或等于 大于= 大于或等于== 等于 != 不等于is 判断两个标识符是不是引用自一个对象is not 判断两个标识符是不是引用自不同对象注意: 八个比较运算符优先级相同。 Python允许x < y <= z这样的链式比较,它相当于x < y and y <= z。 复数不能进行大小比较,只能比较是否相等。 三、逻辑运算符 运算符 描述 备注x or y if x is false, then y, elsex x andy if x is false, then x, elsey not x if x is false, then True,elseFalse 注意: or是个短路运算符,它只有在第一个运算数为False时才会计算第二个运算数的值。 and也是个短路运算符,它只有在第一个运算数为True时才会计算第二个运算数的值。 not的优先级比其他类型的运算符低,所以not a == b相当于not (a == b),而 a == not b是错误的。 四、位运算符 运算符 描述 备注x | y 按位或运算符 x ^ y 按位异或运算符 x & y 按位与运算符 x << n 左移动运算符 x >> n 右移动运算符 ~x 按位取反运算符 五、赋值运算符 复合赋值运算符与算术运算符是一一对应的: 六、成员运算符 Python提供了成员运算符,测试一个元素是否在一个序列(Sequence)中。 运算符 描述in 如果在指定的序列中找到值返回True,否则返回False。not in 如果在指定的序列中没有找到值返回True,否则返回False。 4.关键字总结 Python中的关键字包括如下: and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try你想看看有哪些关键字?OK,打开一个终端,就像这样~ long@zhouyl:~$ pythonPython 2.7.3 (default, Jan 2 2013, 16:53:07) [GCC 4.7.2] on linux2Type "help", "copyright", "credits" or "license" for more information. import keywordkeyword.kwlist ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] ============================== 华丽的 正文分隔符 ======================================== 看到这些关键字你还能记得多少?你不妨自己一个一个对照想想它的用法,下面是我总结的,我根据前面的学习笔记将上述关键字分为以下几类: 1.判断、循环 对于Python的循环及判断主要包括这些关键字: if elif else for while break continue and or is not in 这几个关键字在前面介绍 if 语法、while语法、for语法以及and...or语法中已有介绍,下面再一笔带过: 1.1 if 语法 if语法与C语言、shell脚本之下的非常类似,最大的区别就是冒号以及严格的缩进,当然这两点也是Python区别于其他语言的地方: if condition1: do something elif condition2: do another thing else: also do something 1.2 while 语法 Python的while语法区别于C、shell下的while除了冒号及缩进之外,还有一点就是while可以携带一个可选的else语句: while condition: do something else: do something 注:else语句是可选的,但是使用while语句时一定要注意判断语句可以跳出! 1.3 for 语法 与while类似,Python的for循环也包括一个可选的else语句(跳出for循环时执行,但是如果是从break语句跳出则不执行else语句块中的代码!),而且for 加上 关键字in就组成了最常见的列表解析用法(以后会写个专门的博客)。 下面是for的一般用法: for i in range(1,10,2): do something if condition: break else: do something for的列表解析用法: for items in list: print items 1.4 and...or 语法 Python的and/or操作与其他语言不同的是它的返回值是参与判断的两个值之一,所以我们可以通过这个特性来实现Python下的 a ? b : c ! 有C语言基础的知道 “ a ? b : c ! ” 语法是判断 a,如果正确则执行b,否则执行 c! 而Python下我们可以这么用:“ a and b or c ”(此方法中必须保证b必须是True值),python自左向右执行此句,先判断a and b :如果a是True值,a and b语句仍需要执行b,而此时b是True值!所以a and b的值是b,而此时a and b or c就变成了b or c,因b是True值,所以b or c的结果也是b;如果a是False值,a and b语句的结果就是a,此时 a and b or c就转化为a or c,因为此时a是 False值,所以不管c是True 还是Flase,a or c的结果就是c!!!捋通逻辑的话,a and b or c 是不是就是Python下的a ? b : c ! 用法? 1.5 is ,not is 和 is not 是Python下判断同一性的关键字,通常用来判断 是 True 、False或者None(Python下的NULL)! 比如 if alue is True : ... (不记得本节的童鞋罚复习:python 学习笔记 2 -- 判断语句) 2.函数、模块、类 对于Python的函数及模块主要包括这些关键字: from import as def pass lambda return class 那么你还能记得它们么?下面简单介绍一下: 2.1 模块 Python的编程通常大量使用标准库中的模块,使用方法就是使用import 、from以及as 关键字。 比如: import sys # 导入sys模块 from sys import argv # 从sys模块中导入argv ,这个在前面介绍脚本传参数时使用到 import cPickle as p # 将cPickle模块导入并在此将它简单命名为p,此后直接可以使用p替代cPickle模块原名,这个在介绍文件输入输出时的存储器中使用到 2.2 函数 Python中定义函数时使用到def关键字,如果你当前不想写入真实的函数操作,可以使用pass关键字指代不做任何操作: def JustAFunction: pass 当然,在需要给函数返回值时就用到了return关键字,这里简单提一下Python下的函数返回值可以是多个(接收返回值时用相应数量的变量接收!)! 此外Python下有个神奇的Lambda函数,它允许你定义单行的最小函数,这是从Lisp中借用来的,可以用在任何需要函数的地方。比如: g = lambda x : x*2 # 定义一个Lambda函数用来计算参数的2倍并返回! print g(2) # 使用时使用lambda函数返回的变量作为这个函数的函数名,括号中带入相应参数即可! (不记得本节的童鞋罚复习:python 学习笔记 4 -- 函数篇) 3.异常 对于Python的异常主要包括这些关键字: try except finally raise 异常这一节还是比较简单的,将可能出现的异常放在 try: 后面的语句块中,使用except关键字捕获一定的异常并在接下来的语句块中做相应操作,而finally中接的是无论出现什么异常总在执行最后做finally: 后面的语句块(比如关闭文件等必要的操作!) raise关键字是在一定的情况下引发异常,通常结合自定义的异常类型使用。 (不记得本节的童鞋罚复习:python 学习笔记 6 -- 异常处理) 4.其他 上面的三类过后,还剩下这些关键字: print del global with assert yield exec 首先print 在前面的笔记或者任何地方你都能见到,所以还是比较熟悉的,此处就不多介绍了!del 关键字在前面的笔记中已有所涉及,比如删除列表中的某项,我们使用 “ del mylist[0] ” 可能这些剩下来的关键字你比较陌生,所以下面来介绍一下: 4.1.global 关键字 当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。 eg. ? 1 2 3 4 5 6 7 8 9 10 11 !/usr/bin/python Filename: func_local.py def func(x): print'x is', x x = 2 print'Changed local x to', x x = 50 func(x) print'x is still', x 运行的结果是这样的:? 1 2 3 4 $ python func_local.py x is 50 # 运行func函数时,先打印x的值,此时带的值是作为参数带入的外部定义的50,所以能正常打印 x=50 Changed local x to 2 # 在func函数中将x赋2,并打印 x is still 50 # 运行完func函数,打印x的值,此时x的值仍然是之前赋给的50,而不是func函数中修改过的2,因为在函数中修改的只是函数内的局部变量 那么为什么我们要在这提到局部变量呢?bingo,聪明的你一下就猜到这个global就是用来定义全局变量的。也就是说如果你想要为一个在函数外定义的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。eg.? 1 2 3 4 5 6 7 8 9 10 11 12 !/usr/bin/python Filename: func_global.py def func(): global x print'x is', x x = 2 print'Changed local x to', x x = 50 func() print'Value of x is', x 运行的结果是这样的:? 1 2 3 4 $ python func_global.py x is 50 Changed global x to 2 Value of x is 2 # global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。 你可以使用同一个global语句指定多个全局变量。例如global x, y, z。 4.2.with 关键字 有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。如果不用with语句,打开一个文件并读文件的代码如下:? 1 2 3 file = open("/tmp/foo.txt") data = file.read() file.close() 当然这样直接打开有两个问题:一是可能忘记关闭文件句柄;二是文件读取数据发生异常,没有进行任何处理。下面是添加上异常处理的版本:? 1 2 3 4 5 file = open("/tmp/foo.txt") try: data = file.read() finally: file.close() 虽然这段代码运行良好,但是太冗余了。这时候就是with一展身手的时候了。除了有更优雅的语法,with还可以很好的处理上下文环境产生的异常。下面是with版本的代码:? 1 2 with open("/tmp/foo.txt") as file: data = file.read() 这看起来充满魔法,但不仅仅是魔法,Python对with的处理还很聪明。基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。with语句的执行逻辑如下:紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。 下面例子可以具体说明with如何工作:? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 !/usr/bin/python with_example01.py classSample: def __enter__(self): print"In __enter__()" return"Foo" def __exit__(self, type, value, trace): print"In __exit__()" def get_sample(): returnSample() with get_sample() as sample: print"sample:", sample 运行代码,输出如下? 1 2 3 4 $python with_example01.py In __enter__() # __enter__()方法被执行 sample: Foo # __enter__()方法返回的值 - 这个例子中是"Foo",赋值给变量'sample',执行代码块,打印变量"sample"的值为"Foo" In __exit__() # __exit__()方法被调用 4.3.assert 关键字 assert语句是一种插入调试断点到程序的一种便捷的方式。assert语句用来声明某个条件是真的,当assert语句失败的时候,会引发一AssertionError,所以结合try...except我们就可以处理这样的异常。 mylist # 此时mylist是有三个元素的列表['a', 'b', 'c']assert len(mylist) is not None # 用assert判断列表不为空,正确无返回assert len(mylist) is None # 用assert判断列表为空 Traceback (most recent call last): File "", line 1, in AssertionError # 引发AssertionError异常 4.4.yield 关键字 我们先看一个示例:? 1 2 3 4 5 6 7 8 def fab(max): n, a, b = 0,0,1 whilen < max: yield b # print b a, b = b, a + b n = n + 1 ''' 使用这个函数:? 1 2 3 4 5 6 7 8 forn in fab(5): ... print n ... 1 1 2 3 5 简单地讲,yield 的作用就是把一个函数变成一个 generator(生成器),带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator,调用 fab(5) 不会执行 fab 函数,而是返回一个 iterable(可迭代的)对象!在 for 循环执行时,每次循环都会执行 fab 函数内部的代码,执行到 yield b 时,fab 函数就返回一个迭代值,下次迭代时,代码从 yield b 的下一条语句继续执行,而函数的本地变量看起来和上次中断执行前是完全一样的,于是函数继续执行,直到再次遇到 yield。也可以手动调用 fab(5) 的 next() 方法(因为 fab(5) 是一个 generator 对象,该对象具有 next() 方法),这样我们就可以更清楚地看到 fab 的执行流程:? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 f = fab(5) f.next() 1 f.next() 1 f.next() 2 f.next() 3 f.next() 5 f.next() Traceback (most recent call last): File"", line 1, in StopIteration 当函数执行结束时,generator 自动抛出 StopIteration 异常,表示迭代完成。在 for 循环里,无需处理 StopIteration 异常,循环会正常结束。 我们可以得出以下结论:一个带有 yield 的函数就是一个 generator,它和普通函数不同,生成一个 generator 看起来像函数调用,但不会执行任何函数代码,直到对其调用 next()(在 for 循环中会自动调用 next())才开始执行。虽然执行流程仍按函数的流程执行,但每执行到一个 yield 语句就会中断,并返回一个迭代值,下次执行时从 yield 的下一个语句继续执行。看起来就好像一个函数在正常执行的过程中被 yield 中断了数次,每次中断都会通过 yield 返回当前的迭代值。 yield 的好处是显而易见的,把一个函数改写为一个 generator 就获得了迭代能力,比起用类的实例保存状态来计算下一个 next() 的值,不仅代码简洁,而且执行流程异常清晰。 注:如果看完此段你还未明白yield,没问题,因为yield是初学者的一个难点,那么你下一步需要做的就是……看一看下面参考资料中给的关于yield的博文! 4.5.exec 关键字 官方文档对于exec的解释: "This statement supports dynamic execution of Python code."也就是说使用exec可以动态执行Python代码(也可以是文件)。? 1 2 3 4 5 6 7 8 9 10 11 12 13 longer = "print "Hello World ,my name is longer"" # 比如说我们定义了一个字符串 longer 'print "Hello World ,my name is longer"' exec(longer) # 使用exec 动态执行字符串中的代码 Hello World ,my name is longer exec(sayhi) # 使用exec直接打开文件名(指定sayhi,sayhi.py以及"sayhi.py"都会报一定的错,但是我觉得直接带sayhi报错非常典型) Traceback (most recent call last): File"", line 1, in TypeError: exec: arg 1must be a string, file, or code object # python IDE报错,提示exec的第一个参 数必须是一个字符串、文件或者一个代码对象 f = file("sayhi.py") # 使用file打开sayhi.py并创建f实例 exec(f) # 使用exec直接运行文件描述符f,运行正常!! Hi,thisis [''] script 上述给的例子比较简单,注意例子中exec语句的用法和eval_r(), execfile()是不一样的. exec是一个关键字(要不然我怎么会在这里介绍呢~~~), 而eval_r()和execfile()则是内建函数。更多关于exec的使用请详看引用资料或者Google之 在需要在字符中使用特殊字符时,python用反斜杠()转义字符。 原始字符串 有时我们并不想让转义字符生效,我们只想显示字符串原来的意思,这就要用r和R来定义原始字符串。如: print r’tr’ 实际输出为“tr”。 转义字符 描述 (在行尾时) 续行符 反斜杠符号 ’ 单引号 ” 双引号 a 响铃 b 退格(Backspace) e 转义 000 空 n 换行 v 纵向制表符 t 横向制表符 r 回车 f 换页 oyy 八进制数yy代表的字符,例如:o12代表换行 xyy 十进制数yy代表的字符,例如:x0a代表换行 other 其它的字符以普通格式输出

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

问题

请教下,一个10条数据的rdd,如何通过(复制)扩充10倍,变成100条这个操作怎么实现?

珍宝珠 2019-12-01 19:52:31 5 浏览量 回答数 0

回答

你没看到报错的路径最后的汉字都变成码了吗,这说明路径中有汉字的你需要再做一些处理! python对汉字不是支持的很好,你可以查一下具体的资料! 你open文件的时候,utf-8这种编码格式是不支持汉字的你

爱吃鱼的程序员 2020-06-14 14:43:07 0 浏览量 回答数 0

问题

txt打开格式不对

琴心剑魄 2019-12-01 21:45:02 3568 浏览量 回答数 2

回答

虽然我不是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
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播