标签:env code tab 一段 脚本 引用 中文 IV doc
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
一、Python的种类
以上除PyPy之外,其他的Python的对应关系和执行流程如下:
二、python的安装
安装Python
1、下载安装包 https://www.python.org/downloads/ 2、安装 默认安装路径:C:\python27 3、配置环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 如:原来的值;C:\python27,切记前面有分号
linux:
无需安装,原装Python环境
ps:如果自带2.6,请更新至2.7
更新Python
windows: 卸载重新安装
linux:
Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
查看默认Python版本 python -V 1、安装gcc,用于编译Python源码 yum install gcc 2、下载源码包,https://www.python.org/ftp/python/ 3、解压并进入源码文件 4、编译安装 ./configure make all make install 5、查看版本 /usr/local/bin/python2.7 -V 6、修改默认Python版本 mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/bin/python2.7 /usr/bin/python 7、防止yum执行异常,修改yum使用的Python版本 vi /usr/bin/yum 将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
解释器就是一种让其他的程序运行起来的一种程序,是代码和机器硬件之间的软件逻辑层。
安装好python后包含了一些最小化的组件:一个解释器和支持的库
在交互模式下,输入代码的结果将会在按下回车后在>>>这一行之后显示。
为什么使用交互提示模式?
1、实验
由于代码是立即执行的,当对一段代码在运行有疑问的时候,打开交互命令行并实验代码,看看和预想的是否一样。
2、测试
可以交互地导入模块文件,并且在交互提示模式中输入命令从而在它们定义的工具上运行测试。
import os os.getcwd() ‘c:\\python30‘
使用交互式模式需要注意的地方:
1、只能够输入python命令,不要输入系统的命令;
2、不需要在交互模式下输入完整的打印语句print(),但是文件中打印语句是必须的;
3、留意提示符的变换和复合语句,当在交互模式下输入两行或多行的复合语句时,提示式会发生变化,注意语法的缩进;
5、连续的回车结束复合语句;
6、一次运行一条语句。
为了能够永久的保存程序,需要在文件中写入代码,这样的文件通常叫做模块。模块是一个包含了python语句的简单文本文件,可以让python解释器多次运行和导入这样的文件中的语句,并且可以以多种方式云运行。
命令行运行文件:
1、windows
首先要将python加入到系统的环境变量中或者直接使用程序的路径+文件保存路径运行
2、linux/unix
文件头:
#!/usr/bin/env python # -*- coding:utf-8 -*-
env可以通过系统PATH环境变量中罗列出的目录,定位python解释器,这种方法可以使代码更具有可移植性。
文件权限:
chmod u+x 给予文件可执行的权限。
字符编码:
支持中文的第一张表就叫 GB2312
1980 gb2312 6700+
1995 gbk1.0 20000
2000 gb18030 27000
big5 台湾
unicode 万国码 支持所有国家和地区的编码
2**16 = 65535 = 存一个字符 统一占用2个字节
UTF-8 = unicode 的扩展集,可变长的字符编码集
Assic -->Gb2312 ->gbk1.0-->gb18030 Assic -->unicode -->utf-8 /utf-16
Python2.x == Assic 默认编码 #!-*- coding:utf-8 -*- #coding:utf-8
python3.x == unicode默认编码 unicode 是向下兼容gb2312 , gbk
缩进:
IndentationError: expected an indented block ^
IndentationError: unindent does not match any outer indentation level
SyntaxError: invalid syntax 语法错误
tab != 4个空格 windos的原生tab和linux的tab是不一样的,缩进级别必须保持一致
python官方建议用4个空格,可以用一个tab代替4个空格。
注释:
#注释可以自成一行,也可以放置在代码行的右边,#符号后的文本直接作为供人阅读的注释而忽略,并且不会被看做是语句的语法的一部分。
"""被注释的内容""" ‘‘‘ 被注释的内容‘‘‘ 可以为多行进行注释。
简单来讲每一个以扩展名py结尾的python源代码都是一个模块,其他的文件可以通过导入一个模块读取这个模块的内容。一个模块的内容通过这样的属性,能够被外部使用。
三、一些基础知识
调用内置的dir函数,将会返回一个列表,其他包含了对象的所有属性,由于方法是函数属性,它们也会在这个列表中出现。
一般来说,以双下划线开头并结尾的变量名是用来表示python实现细节的命名模式,在这个列表中没有下划线的属性是对象能够调用的方法。
>>> s = ‘spa‘ >>> dir(s) [‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘,
‘__getnewargs__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mod__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘,
‘__reduce_ex__‘, ‘__repr__‘, ‘__rmod__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘capitalize‘, ‘casefold‘, ‘center‘,
‘count‘, ‘encode‘, ‘endswith‘, ‘expandtabs‘, ‘find‘, ‘format‘, ‘format_map‘, ‘index‘, ‘isalnum‘, ‘isalpha‘, ‘isdecimal‘, ‘isdigit‘, ‘isidentifier‘, ‘islower‘,
‘isnumeric‘, ‘isprintable‘, ‘isspace‘, ‘istitle‘, ‘isupper‘, ‘join‘, ‘ljust‘, ‘lower‘, ‘lstrip‘, ‘maketrans‘, ‘partition‘, ‘replace‘, ‘rfind‘, ‘rindex‘,
‘rjust‘, ‘rpartition‘, ‘rsplit‘, ‘rstrip‘, ‘split‘, ‘splitlines‘, ‘startswith‘, ‘strip‘, ‘swapcase‘, ‘title‘, ‘translate‘, ‘upper‘, ‘zfill‘]
2、调用help函数
dir函数简单地给出了方法的名称,要查询它们是做什么的,可以传递给help函数。
help(s.upper) Help on built-in function upper: upper(...) method of builtins.str instance S.upper() -> str Return a copy of S converted to uppercase.
如果给输出的内容起个简单的别名。这样我们用简短的别名来代替长内容,下次要输出的时候就直接使用别名来使用原来的长内容。
当代码第一次给它赋值时就创建了,不需要声明。
变量永远不会有任何和它关联的类型信息或约束,它只是在一个特定的时间,简单的引用了一个特定的对象而已。类型属于对象,而不是变量。
当变量出题在表达式中时,它会马上被当前引用的对象所代替,这个对象是什么类型,所有的变量必须在其使用前明确的赋值,使用未赋值的变量会报错。
(1) 字母数字下划线组成
(2) 不能以数字开头,不能含有特殊字符和空格
(3)不能以保留字命名
(4) 不能以中文命名
(5)定义的变量名应该有意义
(6) 驼峰式命、 下划线分割单词
(7) 变量名区分大小写
不变的量 pie = 3.141592653.... 在py里面所有的变量都是可变的 ,所以用全部大写的变量名来代表此变量为常量
name1 = "SuperMan" name2 = name1 name1 = "BatMan" print(name1,name2) # 这里输出的name1和name2的内容分别是什么? ‘BatMan‘,‘SuperMan‘
变量name1是对象"SuperMan"在内存空间的一个引用(指针)
变量是一个系统表的元素,拥有指向对象的连接的空间
对象是分配的一块内存,有足够的空间云表示它们所代表的值
引用是自动形成的从变量到对象的指针
实现过程:
程序是运行在内存中的,我们执行 name1=“SuperMan”时,这是在内存中哦嗯开辟了一块空间,并将这块空间的内存地址赋值给name1; 在执行name2=name1的时候,将name1中的内存复制给name2,也就是说,name2中的内存地址也是存储“SuperMan”的内存空间的内存地址; 在执行name1= “BatMan”,此时在内存中另外在开辟一块空间存储“BatMan”,将存储“BatMan”的内存空间的地址赋值给name1,。所以在最后执行 print(name1,name2)的时候,就会出现你看到的结果。
7、共享引用
>>> a = 3 >>> b = 3 >>> print(a,b) 3 3
b也是对象3的一个引用 ,实际效果就是变量a和b都引用了相同的对象,指向了相同的内存空间,在python中叫做共享引用,多个变量名引用了同一个对象。
>>> a = 3 >>> b = a >>> a = ‘spam‘ >>> a, b (‘spam‘, 3)
创建了一个新的对象,字符串‘spam‘并设置a对这个新的对象进行引用,这并不会改变b的值,b仍然引用原始的对象-整数3
>>> a = 3 >>> b = a >>> a = a + 2 >>> a,b (5, 3)
事实上,是没有办法改变对象3的值,整数是不可变的,没有方法在原处修改它。
对于像列表这样支持在原处修改的对象,共享引用时需要加倍小心,因为对一个变量斪修改会影响其他的变量
>>> l1 = [2, 3, 4] >>> l2 = l1 >>> l1[0] = 24 >>> l1 [24, 3, 4] >>> l2 [24, 3, 4]
>>> l = [1, 2, 3] >>> m = l >>> l == m True >>> l is m True >>> l = [1, 2, 3] >>> m = [1, 2, 3] >>> l == m True >>> l is m False
python缓存会复用小的整数和小的字符串,不会被回收,相反的,它将可能仍被保存在一个系统表中,等待下一次来重复利用。
>>> a = ‘spam‘ >>> b = ‘spam‘ >>> a == b True >>> a is b True
数字:(包括整数、浮点数、二进制、分数等)都可以支持加法和乘法等运算
序列:(包括字符串、列表、元组)都可以支持索引、分片和合并等操作
映射(字典)通过键的索引
不可变的类型(数字、字符串、元组、不可变的集合)可以运行表达式来创建新的对象并将其结果重新分配给最被的变量。
可变的类型(列表、字典、可变集合)支持原处直接修改
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
标签:env code tab 一段 脚本 引用 中文 IV doc
原文地址:https://www.cnblogs.com/mjc69213/p/9141683.html