<--目录-->

1)Pyhton优点

2)Python缺点

3)优秀程序员要求

4)写代码时需要做的工作

5)语法要求

6)Python数据类型

7)运算符

8)注释

9)字符编码

10)导入模块

11)字符串格式化

12)raw_input交互和input交互

13)流程控制


1、Python优点

  • 简单、优雅、明确

  • 强大的模块三方库

  • 易移植

  • 面向对像

  • 可扩展(c\java\c#...)


2、Python缺点

  • 代码不能加密

  • 速度慢


3、优秀程序员要求

  • 实现要实现的功能

  • 代码简洁易懂

  • 代码容易扩展


4、写代码时需要做的工作

  • 画流程图

  • 写阅读文档

  • 重要逻辑加注释


5、语法要求

 - 缩进统一

 - 变量 

  • 标识符的第一个字符必须是字母(大写或小写),或者一个下载线('_')

  • 标识符名称的其他部分可以由字母(大写或小写)、下载线('_')或数字(0-9)组成

  • 标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中的小写n和后中者的大写N。

  • 有效标识符名称的例子有i、_my_name、name_23和a1b2_c

  • 无效标识符名称的例子有2things、this is spaced out和my-name


6、Python数据类型

                                 按特征划分
                 数字类型
 序列类型     映像类型 
     整型 非整型  字符串(str)       字典
     布尔型 双精度浮点型  元组(tuple)    集合类型
    长整型(L) 复数  列表(list)   可变集合(set)
    标准整型 decimal(不是内建类型)
  不可变集合(frozenset)


                                 按可变性划分
        可哈希的(不可变数据类型)              可变数据类型
               数字类型               字典(dict)
               字符串(str)               列表(set)
               元组(tuple)               可变集合(list)
               不可变集合(frozenset)


7、运算符

运算符 描述 实例
& 按位与运算符 (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 

 

128 64 32 16 8 4 2 1 

1    1  1  1 1 1 1 1

0    0  0  0 1 0 1 0 = 10

0    0  0  1 0 1 0 0 = 20

0    0  0  1 1 1 1 0 = 30


8、注释

   #号:单行注

   '''号:多行注释,前面不加print即可

   如果前面加print的话如:

   print '''Hellow Wrold!!!
            What is your name?
            How are you doing?''' #此为多行打印


9、字符编码

 #unicode转换为utf-8   

>>> name = u'爱德华'
>>> name
u'\u7231\u5fb7\u534e'
>>> type(name)

>>> name.encode('utf-8')
'\xe7\x88\xb1\xe5\xbe\xb7\xe5\x8d\x8e'
>>> a=name.encode('utf-8')
>>> type(a)

 #utf-8转换为unicode

>>> name = '爱德华'
>>> name
'\xe7\x88\xb1\xe5\xbe\xb7\xe5\x8d\x8e'
>>> type(name)

>>> name.decode('utf-8')
u'\u7231\u5fb7\u534e'
>>> a=name.decode('utf-8')
>>> type(a)

 #写脚本的时候指定字符编码

 #/usr/bin/env python
 #_*_ coding:utf-8 _*_


10、导入模块

#终端实践

>>> import os           #跟操作系统进行交互的一个模块
>>> os.system('pwd')
/root                   
0                       #执行命令结果的状态,是成功还是失败
>>> cur_dir = os.system('pwd')   #这里只把执行结果的状态存到变量里
/root
>>> print cur_dir
0
>>> os.popen('pwd')   

>>> a=os.popen('pwd').read()   #把执行结果存到变量里
>>> a
'/root\n'
>>> res = commands.getstatusoutput('pwd')  #把执行的结果和状态都存到变量里
>>> res
(0, '/root')



#脚本案例

[root@localhost opt]# cat sys.py 
#!/usr/bin/env python
import sys
print sys.argv
print sys.argv[2]
[root@localhost opt]# python sys.py A B C
['sys.py', 'A', 'B', 'C']
B


#Python导入模块的三种方法

#第一种方法
import sys   #整个模块导入,推荐使用
print sys.argv   #调用方法,好处是调用功能不会跟我的变量起冲突

#第二种方法
import multiprocessing as multi  #导入模块并改名为multi

#第三种方法
from sys import argv  #导入sys的argv功能,此为单独导入模块的某个功能,不建议用
print argv   #调用方法:直接调用

#第四种方法
from sys import *   #把这个模块下的所有功能都导进来,不建议用
pirnt argv   #调用方法:直接调用

此种方法不建议用,因为模块太多
如果调用的功能名字跟我起的变量名字一致,会导致冲突,如下:
path = 'dff'  #我起的一个变量path
print path   #path是sys下的一个功能,这里输出会调用我的变量,但是不会调用我的模块功能


11、字符串格式化

%  标记转换说明符

s  代表字符串

d  代表进制数

x  代表十六进制数

f  代表浮点数

i  表示整数


12、raw_input和input用户交互

先说raw_input和input的区别:

raw_input:默认是字符串模式,交互时输入字符串不用加引号

input:交互时输入字符串必须加引号,如果原生是字符串,他就是字符串类型,原生是数字,他就是数字类型,原生是变量,就引用你的变量,%d代表十进制,也就是要你一定要输入数字,不需要用到数字的场合,用%s即可

代码例子:

[root@mndg248 opt]# cat raw_input.py 
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
name = raw_input('Please enter your name in English:')
sex = input('Please enter your sex:')
age  = input('age:')
job = raw_input('job:')
salary = input('Salary:')
print '''
    Personal information of %s:
    Name: %s
    sex: %s
    Age: %d
    Job: %s
    Salary: %d
''' % (name,name,sex,age,job,salary)

代码执行

[root@mndg248 opt]# python raw_input.py 
Please enter your name in English:wsyht
Please enter your sex:'man'            
age:26
job:运维
Salary:10000

    Personal information of wsyht:
    Name: wsyht
    sex: man
    Age: 26
    Job: 运维
    Salary: 10000


13、流程控制

1)if...else...

代码示例:

[root@mndg248 opt]# cat ifelse.py 
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
name = raw_input('What is your name? ')
age  = input('age:')
job = raw_input('job:')
salary = raw_input('salary ')
print type(age)
if age > 18:
    msg = '恭喜你,你已经成年了'
else:
    msg = '对不起,你还没有成年'
print '''
    Personal information of %s:
    Name: %s
    Age: %d
    Job: %s
    Salary: %s
------------------------------------
%s
''' % (name,name,age,job,salary,msg)

执行代码

[root@mndg248 opt]# python ifelse.py 
What is your name? wsyht
age:26
job:运维
salary 10000


    Personal information of wsyht:
    Name: wsyht
    Age: 26
    Job: 运维
    Salary: 10000
------------------------------------
恭喜你,你已经成年了

2)if...elif...

代码示例:

[root@mndg248 opt]# cat ifelse.py 
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
name = raw_input('What is your name? ')
age  = input('age:')
job = raw_input('job:')
salary = raw_input('salary ')
print type(age)

if age < 18:
    msg = '对不起你还没有成年'
elif age < 30:
    msg = '对不起,你还没到中年'
else:
    msg = '你已经老大不小了'
    
print '''
    Personal information of %s:
    Name: %s
    Age: %d
    Job: %s
    Salary: %s
------------------------------------
%s
''' % (name,name,age,job,salary,msg)


代码执行

[root@mndg248 opt]# python ifelse.py 
What is your name? wsyht
age:33
job:CTO
salary 30000


    Personal information of wsyht:
    Name: wsyht
    Age: 33
    Job: CTO
    Salary: 30000
------------------------------------
你已经老大不小了


3)while循环

例子1:

#!/usr/bin/env python
#_*_ coding:utf-8 _*_
count = 0
while True:
    print 'loop:', count
    count += 1


例子2:

#!/usr/bin/env python
#_*_ coding:utf-8 _*_
count = 0
while count < 10:
    print '输出小于10的数:', count
    count += 1
else:
    print '输出等于10的数:', count


例子3:

#!/usr/bin/env python
#_*_ coding:utf-8 _*_
import sys
count = 0
while True:
print u'选择你要暂停的行:',
print_num = input('')
while count < 500:
if print_num == count: #判断输入的行数与当前行数是否相等 
   print u'你要暂停的行为 ',print_num
   print u'是否要继续(y|n)',
   choie = raw_input('')
   if choie == 'n':
      sys.exit()
   else:
      break
if print_num < count:#判断输入的行数是否小于当前行数 
           print u'已经过去了'
   break
else:
   count+=1
   print '现在是第%d行 ' % count


14、break和continue

break:表示跳出整个循环

continue: 表示结束本次循环