一、list中的每个元素都进行小操作

list = list(map(小操作,list名字))

newList = list(map(int, newList))

二、字符串组成的List连接成一个字符串

" ".join(listName)

三、头疼的编码问题

python2默认编码是ASCII,不能识别中文字符,即为python2把整个python文件当作ASCII进行处理,遇到中文字符就不认识了便出错,需要在文件开头加上编码。python2中字符串有str和unicode两种类型,str是有各种编码的区别,而unicode没有编码的区别。Python2的对于字符编码的转换要以unicode作为“中间人”进行转化,unicode是python解释器在内存中编码方式。有时候就算写了编码方式,但是一旦文中出现了非ASCii和unicode对象进行操作就会出现错误。python2.x中即使指定了文件使用utf8编码格式,但是在遍历字符串的时候,仍然会以字节为单位遍历字符串,需要在定义字符串之前加上一个小写字母u。

Python 3的源码.py文件 的默认编码方式为UTF-8,所以在Python3中你可以不用在py脚本中写coding声明,并且系统传递给python的字符不再受系统默认编码的影响,统一为unicode编码;将字符串和字节序列做了区别,字符串str是字符串标准形式与2.x中unicode类似,bytes类似2.x中的str有各种编码区别。bytes通过解码转化成str,str通过编码转化成bytes。

四、python教程

1.python程序运行方式:解释器后面跟脚本名称(解释器官方默认为cpython)/交互式(直接输入解释器)/IDE

pyc文件,c指compiled,pyc文件是由python解释器将模块的源码转换为字节码,python这样保存字节码是作为一种启动速度的优化,import导入的模块解释器会编译成二进制文件。

2.python文件命名规则:建议只使用小写字母数字下划线,文件名不能以数字开头(因为文件名会被当做模块引入,每一个以py结尾的python源文件都是一个模块),变量命名规则为单词小写多个单词用下划线分隔。

3.python中如果不希望立刻编写分支内部的代码,可以使用pass关键字,表示一个占位符能够保证程序的代码结构正确。

4.循环中一定要有计数变量的修改!continue尤其注意!

5.print会自动加换行,不加换行可以用print(, end="")

end指示的字符串可以自动加在末尾,print("")可以直接加换行。

6.pycharm使用技巧:pycharm中对某个函数使用Ctrl+Q非常好用,查询函数是干啥的;F7进入自己编写的函数内部;选中函数名,在函数旁边有个小灯泡,insert documentation string,添加参数注释,还有一个如果添加了新的变量可以使用add parameters to docstring;python中如果return的东西太多了,就在return后面套一个括号,然后再括号内部的某一任选位置点击回车,就可以换行,增强可读性。

7.非数字型变量的特点:都是一个序列,理解为容器;取值[];遍历for in;计算长度最大值最小值比较删除;链接和重复;切片。

list:del关键字本质上是用来将一个变量从内存中删除的,日常使用中还是使用列表自带的方法,append方法和extend方法区别,同时传入一个list时候,extend方法会把两个list拼接,而append会把List当作一个元素加入原始List中。列表使用+=实际上会改变原有数据,因为调用的是extend函数,而其他类型的+=不会改变。

列表的使用

tuple:元组的使用场景:函数的参数和返回值,一个函数可以接收任意多个参数或者一次返回多个数据

;格式化字符串,格式化字符串后面的()本质上是一个元组,这样%后面可以直接接一个元组,而且格式化字符串可以赋值给另一个变量;让列表不可以被修改,保护数据安全。

list = list(tuple) tuple = tuple(list)

dict:字典通常用于存储描述一个物体的相关信息,其中的key只能使用字符串/数字/元组,字典是一个无序集合,使用print输出时,顺序和定义时不同的。合并字典用dict.update(new_dict),含有同样的key会覆盖之前的。

sorted(dict.iteritems(), key=operator.itemgetter(1), reverse=True)

str:字符串只有当字符串中由双引号的时候采用单引号;str当作函数参数时候调用方法并不会被修改。

字符串中的index和find方法区别:index如果发现寻找的字符串不存在的时候就会报错;find不会,会返回-1;replce方法不会修改原有字符串会返回一个新字符串;字符串逆序[-1::-1]

非数字类型的公共方法:len函数等;运算符;for;切片

8.新建名片项目

9.函数参数的故事:

不可变类型有数字/字符串/元组;可变类型有字典/列表。字典的key是不可变类型,因为首先要对key进行hash操作,使得访问数据便利。

函数的返回值传递的是引用,如果想要返回多个值,需要使用元组,return后面接元组,可以不加括号,接收的时候,元组有几个变量可以用几个参数接收。

函数参数传递的都是引用,在函数内部的所有赋值操作都不会影响实参的变化;

可变类型的参数,在函数内部调用对象的方法会改变实参;

缺省参数要放在不缺省参数后面,调用某个缺省参数的话,要写xx=xx;

多值参数有*args, **kwargs,可以接收任意多个参数,如果对元组进行拆包的话,在元组前面使用*tuple,对字典进行拆包的话,在字典前面使用**dict。*args传进去是正常一个一个变量,如果传进去一个元组需要解包。

10.局部变量和全局变量:

局部变量就是在函数内部定义;全局变量在函数外部定义,所有函数都可以使用。文件编写规则有:shebang/import/全局变量/函数定义/执行代码。

全局变量的命名规则有g_/gl_。

11.属性:

类:一切皆对象,程序执行时, 类会被加载到内存中,类其实也是一个对象,叫做类对象;类实例化的对象叫做实例对象,类对象只有一个,实例对象可以有多个,实例方法存在类对象中,每次实例对象要调用方法,将实例对象的引用传递给self,self作为方法的参数进行接收,从而访问特定对象的特定属性。

属性的获取机制,首先在对象内部属性中查找,如果没有向上查找类属性,但是如果使用对象名.类属性=xx,则不会向上查找到类属性修改,会增加一个对象属性。

类属性:获取的方式有在实例方法中,类名.属性名/对象名.属性名(不推荐), 在类方法中可以直接用参数cls.类属性访问呢,其实类名=cls=类对象的引用。

类方法:@classmothod (cls)

静态方法:不访问实例属性/类属性:@staticmethod ->类方法和静态方法都是这样调用:类名.方法名调用

实例方法可以访问实例属性和类属性;类方法内部只需要访问类属性;静态方法不需要访问实例属性和类属性。

私有属性:__属性名

私有方法:__私有方法名

子类也不能访问它爸爸的私有。

12.类的内置方法:

__mro__可以查看方法的搜索顺序,method resolution order主要用在多继承时判断方法属性的调用路径

__init__:对于类名()这个过程来说有两步,第一步是在内存中将类实例化,然后调用__init__函数,对属性进行初始化,如果某些属性一开始不知道如何赋值,那么我们可以使用None来表示,None判断的时候使用身份运算符is,is not,这两个是用来判断两个的内存地址是否一样,而==是判断值是否相等。

dir(对象名)来获取对象的方法。

__str__:定制输出的格式

__new__:由object类提供的内置的静态方法,为对象分配空间,返回对象引用,python解释器获得引用后,将引用作为第一个参数,传递给__init__方法即self参数。

13.面向对象的特性:

封装:把方法属性都封装到类内部

继承:继承父类,实现代码的重用。如果使用父类的方法,super().父类方法名来调用父类方法,super是一个特殊的类,super()就是super创建出来的类或者父类名.方法名(self)

多态:不同的子类对象调用父类方法获得不同的效果。

14.单例设计模式:

类创建的对象,在系统中只有唯一的一个对象,每次调用类名()都返回的是同一个对象。

定义类属性;重写__new__方法,如果类属性is none,则调用父类的方法分配内存空间,否则的话就只是返回第一个创建的对象的引用。

同时初始化方法也只能被调用一次,但是我们没有办法限制__init__方法的调用,那么就使用一个标记,如果标记为真,就不执行,标记为假执行一次,然后设置标记。’

15.异常

如果对某段代码不能确定是否能正确执行,则需要捕获异常。

异常的传递:当函数方法出现异常,会将异常传递给函数/方法的调用一方,当传递给主程序,仍美哟异常处理,程序才会被中止。利用异常的传递性,在主程序中捕获异常。

16.模块

模块可以为外界提供全局变量/函数/类,直接执行的代码不是向外界提供的工具,在import文件的时候,文件中没有任何缩进的代码都会被执行一遍,__name__属性可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不会被执行!__name__时python的一个内置属性,记录一个字符串。直接执行模块输出的__name__是__main__,而导入其他文件中,调用这个模块的时候输出的是模块的名字。

import 模块名 as 模块别名(大驼峰命名法)

如果希望从某一个模块中,导入一部分工具

from 模块名 import 工具名,需要使用模块名.的方式访问,可以直接访问。两个工具名字一样,后面会覆盖前面的,使用别名的方法,可以使用同样的工具。

from .. import *,导入所有的工具,直接使用。

模块的搜索顺序:

python的解释器在导入模块的时候,会首先搜索当前目录指定的模块名的文件,如果有就直接导入,如果没有,就搜索系统目录,在开发时给文件起名字,不要和系统的模块文件重名。每一个模块都有一个内置属性__file__表示模块的完整路径。

17.文件开发格式

18.包

包是一个包含多个模块的特殊目录,里面有一个特殊的文件__init__.py,里面指定对外界提供的模块列表,从当前目录导入模块列表。

包的好处,使用import包名可以一次性导入包中所有的模块。

制作发布压缩包的步骤:创建setup.py/创建模块/生成发布压缩包。

19.eval函数能够将字符串当作有效的表达式来求值并返回计算结果,不能将用户的输入直接放入eval,会任意操作系统。

pythonxy使用_python使用相关推荐

  1. pythonxy安装包_python安装pip|pythonxy安装的时候选择了装到F盘,但是python27还是自动装在了C判,有没有办法都弄到F盘啊...

    怎么安装python3.7 python3.7的方法:1.进入python官网,下载相本的安装包:2.打开安装程序,开始进行安装:3.python的安装路径,等待安装完成:4.打开命令提示符,执行py ...

  2. pythonxy安装包_Python计算机视觉:安装

    为顺利帮助读者完成本书中实例的学习,译者已对代码做了相应整理,下面给出在对本书实例学习前,你需要做的前期安装工作.注意,下面译者给出的安装过程是针对Windows下的,其他平台如Linux.Mac请查 ...

  3. pythonxy安装包_Python软件包:Python(x,y)

    Python软件包:Python(x,y) 大家在用Python的时候,有没有一种感觉:确实用的很爽快,但是不断的要自己去安装各种安装包和库文件,是一件很麻烦的事情.今天发现一个牛逼软件包:Pytho ...

  4. python3 列表转字节_Python 3.9!10大新特性值得关注

    选自towardsdatascience 作者:Farhad Malik机器之心编译编辑:陈萍 近日,Python 3.9 发布,并开发了一些新特性,包括字典合并与更新.新的解析器.新的字符串函数等. ...

  5. python dict遍历_python入门

    python:简洁,优雅,快捷 简洁到变量可以不用定义直接用,可以调用很多函数,方便移植,对数据的处理速度快,但是耗内存 我学习python的时候,感觉这就像是在看小学生的作业,当然只是刚学习到了基础 ...

  6. python log函数怎么打_Python的log日志功能及设置方法

    python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客

  7. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  8. python判断素数的函数_Python素数prime函数练习_Python源码实操

    Python素数prime函数练习_Python源码实操 素数prime函数练习 1) 写一个函数isprime(x) 判断x是否为素数,如果是素数,返回True,否则返回False def ispr ...

  9. python如何调用c++numpy.ndarray代码_python – 在cython中使用numpy:定义ndarray数据类型/ ndims...

    我正在尝试编写一些cython代码来进行numpy数组的计算. Cython似乎不喜欢我见过的所有示例中使用的[]来定义数据类型和维数. 例如,我有一个文件test.pyx: cimport nump ...

最新文章

  1. 高通为何46亿美元ADAS Veoneer Arriver
  2. python基本图形绘制_【Python】Python基本图形绘制-Go语言中文社区
  3. python获取工程根目录_【Python】获取当前项目根路径/目录
  4. 如何快速解决虚拟机中的CentOS7无法上网的方式
  5. 2.控制反转 spring_ioc
  6. 计算机桌面堆,桌面堆 Desktop heap设置
  7. 怎样将树的中序遍历的数输入到一个数组中_LeetCode 530.二叉搜索树的最小绝对差
  8. 【LeetCode】剑指 Offer 18. 删除链表的节点
  9. MySql索引分析及查询优化
  10. 循环遍历java属性_java中循环遍历实体类的属性和数据类型以及属性值
  11. HDU 2639 Bone Collector II (dp)
  12. 【树链剖分】树链剖分讲解
  13. 备忘--moodle安装
  14. H5跳转支付宝小程序
  15. 堪比阿里插件的Android Studio插件集合(IDE通用)(下)
  16. 【网络与系统安全实验】网络与系统安全概述
  17. linux下打字软件,桌面应用|与 Linux 一起学习:学习打字
  18. 【题解】二进制优化的多重背包问题
  19. 那个男人他不装了,他必须硬卷!
  20. 视频转mp3格式转换器怎么使用

热门文章

  1. 腾讯云轻量快速搭建个人网盘
  2. 图书管管理系统15周
  3. 页面显示的时候先显示暂无数据然后再显示数据
  4. Mac启动/关闭Redis服务器
  5. 【设计模式自习室】门面模式 Facade Pattern
  6. [转]解读油画——搓麻将的女人
  7. i5 3470+XSB75M-PK+HD 7750安装黑苹果macOS Big Sur 11.7.7
  8. 我的世界手机版javaui材质包_VortexShader1.0水材质包下载_我的世界VortexShader1.0水模组材质包下载 v1.0.0.35545...
  9. 点积和叉积的几何意义
  10. Github创建分支并删除文件