您的位置:首页 > 编程语言 > Python开发

Python笔记第1章,流程控制,用户交互,语法要求,变量,字符,注释,模块导入的使用

2016-06-27 15:59 796 查看
<--目录-->
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)
<type 'unicode'>
>>> name.encode('utf-8')
'\xe7\x88\xb1\xe5\xbe\xb7\xe5\x8d\x8e'
>>> a=name.encode('utf-8')
>>> type(a)
<type 'str'>
#utf-8转换为unicode
>>> name = '爱德华'
>>> name
'\xe7\x88\xb1\xe5\xbe\xb7\xe5\x8d\x8e'
>>> type(name)
<type 'str'>
>>> name.decode('utf-8')
u'\u7231\u5fb7\u534e'
>>> a=name.decode('utf-8')
>>> type(a)
<type 'unicode'>
#写脚本的时候指定字符编码
#/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')
<open file 'pwd', mode 'r' at 0x7f7b2c49bd20>
>>> 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
<type 'int'>

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
<type 'int'>

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: 表示结束本次循环
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息