Python的文件类型、变量以及数值和字符串
2017-12-20 16:02
465 查看
Python的文件类型:
Python的文件类型大致有三种:.py.pyc和.pyo,下面简单讲解一下这三种文件的区别:
1) .py
.py是Python写好的源码文件,这个比较好理解,可以通过shell的命令提示符输入python filename.py直接执行,其可以通过vim等文本工具直接打开查看其源代码。
2) .pyc
.pyc是Python源码也就是.py文件编译后生成的文件,该文件为二进制文件,是一种byte code。其优点是加速有所提高,.pyc是一种跨平台二进制字节码,通过python虚拟机执行,但.pyc的内容和Python的版本是相关的,因此不同版本之间编译的.pyc文件不能执行的。
2)
.pyo
.pyo和.pyc是一样的,但是.pyo是优化编译后的程序,通过python -o filename.py即可将源程序编译成改类型文件。
文件类型总结:
为什么需要pyc文件?
首先,pyc可以隐藏掉源码文件,例如商业软件可能需要(此后需求可能越来越小,毕竟现在是开源时代)。当然,pyc文件也是可以反编译的,根据python源码中提供的opcode,根据pyc文件反编译出py文件源码,网上有这样的工具存在。不过大家可以通过自己修改python源代码中的opcode文件(学习如何修改opcode),重新编译python以防止被破解。
生成pyc文件:
生成单个pyc文件
python这货提供了内置类库来实现py变pyc。这个模板为:py_compile使用方法:
import py_compile
py_compile.compile(‘file path/filename.py’)
上面是脚本的执行方式,命令执行方式为:python -m py_compile filname.py
编译成pyo比较简单,就不在多说,举个例子
p
4000
ython -O -m py_compile filename.py
说明: -m相当于脚本中的import,-O改成-OO则是删除相应的pyo文件。python -h可以查看帮助
批量生成pyc文件:
一般来说一个工程项目不会只有一个py文件,而是整个目录都需要编译成pyc,python提供了另一个模板:compileall使用方法:
import compileall
compileall.compile_dir(‘path’)
也可以直接使用命令编译整个目录下的文件:#python -m compileall /path/
python的变量:
a = 3
b = 4
c = a * b
print c
变量的作用:
简单总结:
为了存储程序运算过程中的中间结果,方便往后调用。
官方说明:
variables are used to store information to be referenced and manipulated(操作或修改) in a computer program. they also(并且还) provide a way of labeling data with a descriptive name, so our programs can be understood(理解) more clearly(更清晰) by the reader and ourselver(我们自己).
It is helpful to think of variables as containers that hold information.their sole purpose is to label and store data in memory. this data can then by used throughout your program.
变量的命名规范
命名示例:(2种)
student_number:#官方推荐体,首字母不要大写
studentNumber:#驼峰体
命名规则:
1)具有描述性
2)变量名只能以下划线_、数字、字母组成,不可以有空格和特殊字符(@#¥%……等等)
3)不能以中文为变量名,不能以数字开头,但数字可以再中间和结尾。
4)保留字符不能被使用,例如print
常量:
不变的量,例如pie=3.1415926..
a = "3" #内存里开了空间存3
b = a #a去找了3,并没有在内存中开了一个a的存储
print a,a
a = "4" #它其实又开了新的内存,原来的3还是在b上面,b只是指向了原来a的值3,和a没有关系
print a #结果为4,但打印b还是3,
内存回收:
Python中内存有自己的内存回收机制,不需要手动写指令回收不用的变量赋值。
清除已定义的变量赋值:
有两种方式:
1、例如:age = 18
del age 就删除了age的值18
2、age =18
age = 20 #从18指向了20,原来的18就没了,内部内存回收机制过一会儿才会去清除它
运算符有:
算术运算符:
比较运算符:
赋值运算符:
num = 1 # 赋值
mum += 1 # 等价于 num = num+1,以下一样
还有、-=、*=、/=、//=、%=。双斜杠是整除、**=
逻辑运算符:
not、and、or
and:连接两个条件,两个条件都成立才为true,有一个不成立则为false。
条件1 and 条件2
例如:5>3 and 6>2
or:或,或者。只要有一个条件为真结果则为真,两个条件都不成立才为假
条件1 or 条件2, 真或假。
例如:5>3 or 6>2
not:不,其实就是取反的结果
not 5 > 3 == False
not 5 < 3 == True
小技巧:不知道他们的优先级的话,可以加小括号,则会优先算小括号里的东西
a>b and (c>b or (not f))
注:Python里不区分变量和常量,所有的量都是可变的量,为了区分常量和变量,常量是全部大写来表示。
数值和字符串编码:
字符编码:
ASCII表原本只有100多个预留空位,但中文字符太多
于是中国另外开发了一张表,关联了ASCII表。支持中文的第一张表叫 GB2312,码位数是72*94个,有五个空位
Unicode:
万国码,支持所有国家和地区的编码
2**16 = 65535 = 存一个字符,统一占用2个字节,而ASCII使用一字节
UTF-8 = Unicode的扩展集,可变长的字符编码集。
Python2.x的默认编码为 ASCII码
Python3.x的默认编码为Unicode。直接支持中文
Unicode向下兼容gb2312和gbk
小窍门
print u'我爱中国' #u可以把指定字符为Unicode,当窗口无法修改为相同字符时,可以用这个兼容。
Python的文件类型大致有三种:.py.pyc和.pyo,下面简单讲解一下这三种文件的区别:
1) .py
.py是Python写好的源码文件,这个比较好理解,可以通过shell的命令提示符输入python filename.py直接执行,其可以通过vim等文本工具直接打开查看其源代码。
2) .pyc
.pyc是Python源码也就是.py文件编译后生成的文件,该文件为二进制文件,是一种byte code。其优点是加速有所提高,.pyc是一种跨平台二进制字节码,通过python虚拟机执行,但.pyc的内容和Python的版本是相关的,因此不同版本之间编译的.pyc文件不能执行的。
2)
.pyo
.pyo和.pyc是一样的,但是.pyo是优化编译后的程序,通过python -o filename.py即可将源程序编译成改类型文件。
文件类型总结:
为什么需要pyc文件?
首先,pyc可以隐藏掉源码文件,例如商业软件可能需要(此后需求可能越来越小,毕竟现在是开源时代)。当然,pyc文件也是可以反编译的,根据python源码中提供的opcode,根据pyc文件反编译出py文件源码,网上有这样的工具存在。不过大家可以通过自己修改python源代码中的opcode文件(学习如何修改opcode),重新编译python以防止被破解。
生成pyc文件:
生成单个pyc文件
python这货提供了内置类库来实现py变pyc。这个模板为:py_compile使用方法:
import py_compile
py_compile.compile(‘file path/filename.py’)
上面是脚本的执行方式,命令执行方式为:python -m py_compile filname.py
编译成pyo比较简单,就不在多说,举个例子
p
4000
ython -O -m py_compile filename.py
说明: -m相当于脚本中的import,-O改成-OO则是删除相应的pyo文件。python -h可以查看帮助
批量生成pyc文件:
一般来说一个工程项目不会只有一个py文件,而是整个目录都需要编译成pyc,python提供了另一个模板:compileall使用方法:
import compileall
compileall.compile_dir(‘path’)
也可以直接使用命令编译整个目录下的文件:#python -m compileall /path/
python的变量:
a = 3
b = 4
c = a * b
print c
变量的作用:
简单总结:
为了存储程序运算过程中的中间结果,方便往后调用。
官方说明:
variables are used to store information to be referenced and manipulated(操作或修改) in a computer program. they also(并且还) provide a way of labeling data with a descriptive name, so our programs can be understood(理解) more clearly(更清晰) by the reader and ourselver(我们自己).
It is helpful to think of variables as containers that hold information.their sole purpose is to label and store data in memory. this data can then by used throughout your program.
变量的命名规范
命名示例:(2种)
student_number:#官方推荐体,首字母不要大写
studentNumber:#驼峰体
命名规则:
1)具有描述性
2)变量名只能以下划线_、数字、字母组成,不可以有空格和特殊字符(@#¥%……等等)
3)不能以中文为变量名,不能以数字开头,但数字可以再中间和结尾。
4)保留字符不能被使用,例如print
常量:
不变的量,例如pie=3.1415926..
a = "3" #内存里开了空间存3
b = a #a去找了3,并没有在内存中开了一个a的存储
print a,a
a = "4" #它其实又开了新的内存,原来的3还是在b上面,b只是指向了原来a的值3,和a没有关系
print a #结果为4,但打印b还是3,
内存回收:
Python中内存有自己的内存回收机制,不需要手动写指令回收不用的变量赋值。
清除已定义的变量赋值:
有两种方式:
1、例如:age = 18
del age 就删除了age的值18
2、age =18
age = 20 #从18指向了20,原来的18就没了,内部内存回收机制过一会儿才会去清除它
运算符有:
算术运算符:
比较运算符:
赋值运算符:
num = 1 # 赋值
mum += 1 # 等价于 num = num+1,以下一样
还有、-=、*=、/=、//=、%=。双斜杠是整除、**=
逻辑运算符:
not、and、or
and:连接两个条件,两个条件都成立才为true,有一个不成立则为false。
条件1 and 条件2
例如:5>3 and 6>2
or:或,或者。只要有一个条件为真结果则为真,两个条件都不成立才为假
条件1 or 条件2, 真或假。
例如:5>3 or 6>2
not:不,其实就是取反的结果
not 5 > 3 == False
not 5 < 3 == True
小技巧:不知道他们的优先级的话,可以加小括号,则会优先算小括号里的东西
a>b and (c>b or (not f))
注:Python里不区分变量和常量,所有的量都是可变的量,为了区分常量和变量,常量是全部大写来表示。
数值和字符串编码:
字符编码:
ASCII表原本只有100多个预留空位,但中文字符太多
于是中国另外开发了一张表,关联了ASCII表。支持中文的第一张表叫 GB2312,码位数是72*94个,有五个空位
Unicode:
万国码,支持所有国家和地区的编码
2**16 = 65535 = 存一个字符,统一占用2个字节,而ASCII使用一字节
UTF-8 = Unicode的扩展集,可变长的字符编码集。
Python2.x的默认编码为 ASCII码
Python3.x的默认编码为Unicode。直接支持中文
Unicode向下兼容gb2312和gbk
小窍门
print u'我爱中国' #u可以把指定字符为Unicode,当窗口无法修改为相同字符时,可以用这个兼容。
相关文章推荐
- python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典
- python的文件类型、python的变量、python的数值和字符串
- 复习1次课(11月28日) 1.3 python的文件类型 1.4 python的变量 1.5 python的数值和字符串 1.6 元组 1.7 列表 1.8 字典 1.9 字典练习
- python元组类型的变量以及字符串类型的变量作为参数进行传值
- Python文件类型,变量及字符串
- Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数
- Python学习笔记之二 变量以及基本类型
- 将一个十六进制字符串转换为十进制数值的问题|| 以及C++中string转换成char*|| c++文件按行输入
- 【OC语言】第二篇·对象的作用、字符串类型以及多文件开发
- 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流
- Python学习笔记(一)--Python基础知识:变量、数据类型、模块与字符串
- Python教程学习简记1--Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set
- Python中数据类型变量,编码以及格式化注意细节O(∩_∩)O
- python 调用系统命令,并将输出重定向,输出其结果至文件或者字符串变量
- 【Go入门教程4】变量(var),常量(const),内置基础类型(Boolean、数值 byte,int,rune、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值
- 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流
- Python学习-5.Python的变量与数据类型及字符串的分割与连接
- 编写一个程序以确定分别由signed及unsigned限定的char、short、int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现
- 17.2015.08.04第十八节课 C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)
- A Byte of Python 笔记(2)基本概念:数、字符串、转义符、变量、标识符命名、数据类型、对象