1. 文件类型:

(1)源代码:

vim test.py
#!/usr/bin/python
print 'hello world!'

运行方法1:

[root@localhost python]# python test.py

hello world!

[root@localhost python]#

运行方法2:

[root@localhost python]#chmod +x test.py
[root@localhost python]#./test.py
hello world!
[root@localhost python]#

(2)字节代码:

python源文件编译后为扩展名字为.pyc

删除源码,编译后的二进制文件可以独立执行。

编译方法:

vim 2.py
#!/usr/bin/python
import py_compile
py_compile.compile('test.py')
[root@localhost python]# python 2.py
[root@localhost python]# ls
2.py test.py test.pyc
[root@localhost python]#
[root@localhost python]#python test.pyc
hello world!
[root@localhost python]#

(3)优化的代码:

python -O -m py_compile test.py
[root@localhost python]#python -O -m py_compile test.py
[root@localhost python]# ls
2.py test.py test.pyc test.pyo
[root@localhost python]# python test.pyo
hello world!
[root@localhost python]#

2.Python的变量

变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变结构。

python下变量是对一个数据的引用

(1)变量的命名:变量名的长度不受限制,但其中的字符必须是字母、数字、或者下划线(_),而不能使用空格、连字符、标点符号、引号或其他字符。

变量名的第一个字符不能是数字,而必须是字母或下划线。

Python区分大小写。

不能将Python关键字用作变量名。

例如:a a1 _a

(2)变量的赋值:

是变量的声明和定义的过程。

a = 123
In [1]: a = 123
In [2]: a
Out[2]: 123
In [3]: id(a)
Out[3]: 7891024
In [4]: a = 456
In [5]:id(a)
Out[5]: 19127624
In [6]:

(3)运算符和表达式:

赋值运算符

算术运算符

关系运算符

逻辑运算符

表达式:

将不同的数据(包括变量、函数)用运算符号按一定的规则连接起来的一种式子。

1)赋值运算符

In [68]: a = 3
In [69]: a
Out[69]: 3
In [70]:a+=3
In [71]: a
Out[71]: 6
In [72]: a-=4
In [73]: a
Out[73]: 2
In [76]: a*=3
In [77]: a
Out[77]: 6
In [78]: a/=2
In [79]: a
Out[79]: 3
In [80]:a%=3
In [81]: a
Out[81]: 0
In [82]:

2)算术运算符

In [82]: 1+2
Out[82]: 3
In [83]: 2-1
Out[83]: 1
In [84]: 2 *2
Out[84]: 4
In [85]: 6/2
Out[85]: 3
In [86]: 6 % 2
Out[86]: 0
In [88]: 3.999999 / 2
Out[88]: 1.9999995
In [89]: 3.999999//2
Out[89]: 1.0
In [90]: 3** 2
Out[90]: 9
In [91]:

3)关系运算符:

In [91]: 1> 2
Out[91]: False
In [92]: 2 <3
Out[92]: True
In [93]: 2>=1
Out[93]: True
In [94]: 3 <=56
Out[94]: True
In [95]: 3==3
Out[95]: True
In [96]: 2 !=34
Out[96]: True
In [97]:

4)逻辑运算符:

In [97]: 1 < 2and2 > 0
Out[97]: True
In [98]: 1 == 1 and2 < 1
Out[98]: False
In [99]: 1 == 1 or2 < 1
Out[99]: True
In [100]: not1 > 2
Out[100]: True

5)各种运算符的优先级:

往右越高 上到下越高,

lambda 匿名函数。

python把一个变量写到字符串 python 字符串转变量名_字符串

python把一个变量写到字符串 python 字符串转变量名_python字符串转变量名_02

练习:

写一个四则运算器:

要求从键盘读取数字。

input()与raw_input()

查看帮助:help(input)

raw_input()都当然成字符串处理

%s 格式化字符串。

[root@localhost python]#cat 4.py
#!/usr/bin/python
num1 = input("Please input: ")
num2 = input("Please input: ")
print "%s + %s = %s" % (num1,num2,num1+num2)
print "%s - %s = %s" % (num1,num2,num1-num2)
print "%s * %s = %s" % (num1,num2,num1*num2)
print "%s / %s = %s" % (num1,num2,num1/num2)
[root@localhost python]#python 4.py
Please input: 3
Please input: 5
3 + 5 = 8
3 - 5 = -2
3 * 5 = 15
3 / 5 = 0
[root@localhost python]#

3.Python的数值和字符串

数据类型:

数值

字符串

列表

元组

字典

(1)数值类型:

整型
In [6]:a = 123
In [7]:type(a)
Out[7]:int
In [8]:
长整型
In [8]:a = 199999999999999999999999999999
In [9]:a
Out[10]: 199999999999999999999999999999L
In [11]:type(a)
Out[12]:long
In [13]:
浮点型
0.0, 12.0 -18.8 3e+7等
科学计数法是浮点型
In [11]: 3e+7
Out[11]: 30000000.0
In [12]:type(3e+7)
Out[12]: float
In [13]:3.0/2
Out[13]: 1.5
In [14]:type(3.0/2)
Out[14]: float
In [15]:
复数型
python对复数提供内嵌支持,这是大部分软件没有的。
In [8]:a = 3.14j
In [9]:a
Out[9]: 3.14j
In [10]:type(a)
Out[10]:complex

(2)字符串类型:

In [12]:a = 'abc'
In [13]:a
Out[13]: 'abc'
In [14]: type(a)
Out[14]: str
In [15]:

三重引号还可以做注释:.

In [28]: a = 'hello\nworld'
In [29]: a
Out[29]: 'hello\nworld'
In [30]: a = "hello\nworld"
In [31]: a
Out[31]: 'hello\nworld'
In [39]: a = '''hello\nworld'''
In [40]: a
Out[40]: 'hello\nworld'
In [41]: print a
hello
world
In [42]:
In [43]:type(a)
Out[44]: str

序列索引:

In [42]:a = 'abcde'
In [43]: a[0]
Out[43]: 'a'
In [44]: a[1]
Out[44]: 'b'
In [45]:a[-1]
Out[45]: 'e'
In [46]:a[-2]
Out[46]: 'd'

序列切片:

In [42]:a = 'abcde'
In [43]: a[0]
Out[43]: 'a'
In [44]: a[1]
Out[44]: 'b'
In [45]:a[-1]
Out[45]: 'e'
In [46]:a[-2]
Out[46]: 'd'
In [47]: a[0:2]
Out[47]: 'ab'
In [48]: a[0:4]
Out[48]: 'abcd'
In [49]:a[0:3]
Out[49]: 'abc'
In [50]: a[1:3]
Out[50]: 'bc'
In [56]: a[0] + a[1]
Out[56]: 'ab'
In [57]: a[:2]
Out[57]: 'ab'
In [58]:a[:]
Out[58]: 'abcde'
In [59]:a[:-1]
Out[59]: 'abcd'
In [60]: a[::-1]
Out[60]: 'edcba'
In [61]: a[::1]
Out[61]: 'abcde'
In [62]: a[:3:1]
Out[62]: 'abc'
In [63]: a[::2]
Out[63]: 'ace'
In [64]:a
Out[64]: 'abcde'
In [65]: a[-4::-2]
Out[65]: 'b'
In [66]: a[-4:-2]
Out[66]: 'bc'
In [67]: a[-2:-4:-1]
Out[67]: 'dc'
In [68]:

练习:

1.将 “123” 转换成整数

In [10]: a = int(123)

In [11]: print a

123

In [12]:

2.将 “9999999999999999999” 转换成长整数

In [18]: a = long(9999999999999999999)

In [19]: print a

9999999999999999999

In [20]: a

Out[20]: 9999999999999999999L

In [21]:

3.将 “3.1415926” 转换成一个浮点数

In [21]: a = float(3.1415926)

In [22]: print a

3.1415926

In [23]:

4.将 123 转换成一个字符串

In [23]: a = str(123)

In [24]: print a

123

In [25]:

5.现有以下字符串

字符串1:" abc deFGh&*ijkl opq mnrst((uvwxyz "

字符串2:" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "

使用字符串的各种方法转换成如下方式

ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba
In [25]: str1 = " abc deFGh&*ijkl opq mnrst((uvwxyz "
In [26]: str2 = " ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "
In [27]: print filter(lambda x:x.isalpha(),str2+str1[::-1].lower())
ABCDEFGHIJMNOPQKLRSTUVWXYZzyxwvutsrnmqpolkjihgfedcba
In [28]: