python 11期 第一天

计算机语言排行:

2014年:

http://digi.163.com/14/1208/11/ACUIVI9Q00162OUT.html

2015年:

http://digi.163.com/15/1109/22/B80U542L00162OUT.html


一、python内部代码执行过程|
python文件,以.py结尾,首先指定解释器,有中文时候,要在第二行指定字符集.


模块:

内置模块

类库

自定义模块


wKioL1Ze_LKyF6DZAACfKUmTOnA371.png


二、解释器

#!/usr/bin/env python

C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

python:代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行

Python的运行速度相较与C,绝逼是慢了


三、编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定现有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

unicode是万国码,要经过encode转换成编码utf-8或者gbk

uft-8和gbk需要解码decode,转换成unicode.

wKiom1ZjrayCSHOsAAFRpQTK7ac905.png


四、模块

Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

  • Python内部提供的模块

  • 业内开源的模块

  • 程序员自己开发的模块

执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。

ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。

五、变量的赋值


name1 = "wang"

name2 = "liu"

以上赋值会在内存中各开辟一块内存空间


name1 = "zhang"

name2 = name1

以上赋值会在内存中只开辟一块内存空间


a=4

b=9

a,b=b,a

print a,b

交差赋值


六、输入

name = raw_input("请输入用户名:")

raw_input()函数输入的是字符串类型

input()函数输入的是整数类型


输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:


#!/usr/bin/env python

# -*- coding: utf-8 -*-


import getpass


# 将用户输入的内容赋值给 name 变量

pwd = getpass.getpass("请输入密码:")


七、流程控制和缩进

流程控制语句有:

if判断


for循环:

包括范围循环和循环一个序列。


while条件循环:

可以设置一个条件,比如True,为死循环。

或者a为一个变量,当a大于一个数值时结束循环。


缩进:每一个流程控制语句都是靠缩进来形成语句块。因此它没有结束符,不需要大括号{}


八、基本数据类型

1、数字

包括整形,int float complex


2、布尔值

  真或假

  1 或 0

布尔类型中,以下都会被识别为false:

False   None   0   ''   ()   []    {} 

0和空字符,空元组,空列表,空字典,都会被识别为False


3、字符串

字符串拼接可以用两种办法:

第一种是用+号连接,比如

name = 'LiFeng'

age = 19

print "I am is" + name +", "+"my age is" + age

如果要把字符串和变量连起来需要用+号,但是每用一次+号,就需要在内存中重新开辟一块空间,因此非常浪费资源,一般不推荐使用此种方法

第二种是字符串格式化:

格式化字符串也有两种方法,第1种是使用%s 或 %d 

print "your information:"

name = raw_input('NAME: ')

age = int(raw_input('Age: '))

sex = raw_input('Sex: ')

job = raw_input('Job: ')

print '--------------------------'

print type(age)

print '''\tName: %s

\tAge:  %d

\tSex:  %s

\tJob:  %s '''  %  (name,age,sex,job)

提示:因为上面的age变量被int()引用成了数字,因此下面可以用age可以用%d来调用,如果sex或job来用%d调用就会报错,因为它们不是数字。


第2种:

还可以使用索引来格式化字符串,如:

name = "I am is {0}, age is {1}"

print name.format('Bright',24)


字符串常用功能:

移除空白 

分割

长度 len()

索引 index()

切片 [:]


4、列表

创建列表:

name_list = ['alex', 'seven', 'eric']

name_list = list(['alex', 'seven', 'eric'])

基本操作:


索引

切片

追加

删除

长度

切片

循环

包含

5、元祖

创建元祖:

ages = (11, 22, 33, 44, 55)

ages = tuple((11, 22, 33, 44, 55))

基本操作:

索引

切片

循环

长度

包含

6、字典(无序)

创建字典:

person = {"name": "mr.wu", 'age': 18}

person = dict({"name": "mr.wu", 'age': 18})

常用操作:


索引

新增

删除

键、值、键值对

循环

长度

PS:循环,range,continue 和 break


九、运算


Python算术运算符


运算符 描述 实例

+ 加 - 两个对象相加 a + b 输出结果 30

- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10

* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200

/ 除 - x除以y b / a 输出结果 2

% 取模 - 返回除法的余数 b % a 输出结果 0

** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000

// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0



Python比较运算符


运算符 描述 实例

== 等于 - 比较对象是否相等 (a == b) 返回 False。

!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.

<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。

> 大于 - 返回x是否大于y (a > b) 返回 False。

< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。

>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。

<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。



Python赋值运算符


运算符 描述 实例

= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c

+= 加法赋值运算符 c += a 等效于 c = c + a

-= 减法赋值运算符 c -= a 等效于 c = c - a

*= 乘法赋值运算符 c *= a 等效于 c = c * a

/= 除法赋值运算符 c /= a 等效于 c = c / a

%= 取模赋值运算符 c %= a 等效于 c = c % a

**= 幂赋值运算符 c **= a 等效于 c = c ** a

//= 取整除赋值运算符 c //= a 等效于 c = c // a


Python逻辑运算符


运算符 描述 实例

and 布尔"与" - 如果x为False,x and y返回False,否则它返回y的计算值。 (a and b) 返回 true。

or 布尔"或" - 如果x是True,它返回True,否则它返回y的计算值。 (a or b) 返回 true。

not 布尔"非" - 如果x为True,返回False。如果x为False,它返回True。 not(a and b) 返回 false。


Python位运算符


运算符 描述 实例

& 按位与运算符 (a & b) 输出结果 12 ,二进制解释: 0000 1100

| 按位或运算符 (a | b) 输出结果 61 ,二进制解释: 0011 1101

^ 按位异或运算符 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001

~ 按位取反运算符 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。

<< 左移动运算符 a << 2 输出结果 240 ,二进制解释: 1111 0000

>> 右移动运算符 a >> 2 输出结果 15 ,二进制解释: 0000 1111



Python成员运算符


运算符 描述 实例

in 如果在指定的序列中找到值返回True,否则返回False。 x 在 y序列中 , 如果x在y序列中返回True。

not in 如果在指定的序列中没有找到值返回True,否则返回False。 x 不在 y序列中 , 如果x不在y序列中返回True。


Python身份运算符


运算符 描述 实例

is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1

is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1


十、 文本的基本操作

 

打开文件:

  file_obj = file("文件路径","模式")

打开文件的模式有:

r,以只读方式打开文件

w,打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

w+,打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

读取文件的内容:


# 一次性加载所有内容到内存

obj.read()


# 一次性加载所有内容到内存,并根据行分割成字符串

obj.readlines()


# 每次仅读取一行数据

for line in obj:

  print line

写文件的内容:


obj.write('内容')

关闭文件句柄:


obj.close()


本文出自 “Linux天地” 博客,转载请与作者联系!

你可能感兴趣的:(python,基础,解释器)