python-01

一、什么是python
python是一个面向对象的程序语言

二、python能干什么
WEB开发
GUI开发
网络编程
应用程序开发

三、VIM的功能
#vim ~/.vimrc
set ai    //设置自动缩进
set expandtab     //阻止将8个空格转换为tab

四、一般情况下,在python中输入的字符,如果只是一串字符,那么它应该是定义好的名字(函数、对象、变量),否则会报错,提示名字找不到。也可以是关键字(如if/for/while)。如果一定表示是字符,那么必须给字符加上引号。单引导和双引号在python中一样的含义。
>>>print '''this is test'''

五、让python的交互解释器支持tab补全、提示功能
  1. #!/usr/bin/env python
  2. # python startup file
  3. import sys
  4. import readline
  5. import rlcompleter
  6. import atexit
  7. import os
  8. # tab completion
  9. readline.parse_and_bind('tab: complete')
  10. # history file
  11. histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
  12. try:
  13. readline.read_history_file(histfile)
  14. except IOError:
  15. pass
  16. atexit.register(readline.write_history_file, histfile)
  17. del os, histfile, readline, rlcompleter

#chmod 755 tab.py
#cp tab.py /usr/lib64/python2.6/site-packages/
#python
>>>import tab
就可以使用TAB了
>>>import sys
>>>sys.<tab><tab>
显示相关函数及模块

六、导入模块
一个模块就是一个python文件,该文件中有写好函数、类等。通过导入这个模块使得该模块中的函数可用。
#vim star.py   定义一个函数
  1. #!/usr/bin/env python
  2. def pstar():
  3. print '*' * 50

#vim hello.py   执行上面该文件的函数,格式为——文件名.文件名里的函数()
注意 stat在哪个目录就在哪个目录下执行
  1. #!/usr/bin/env python
  2. import star
  3. star.pstar()
  4. print 'hellp world!'
  5. star.pstar()

七、raw_input()
用于接收用户的输入
#vim login.py //程序执行时,屏幕上提示username:,用户输入用户名后
                        //将用户的输入保存到username这个变量中
  1. #!/usr/bin/env python
  2. username = raw_input("username:")
  3. print 'welcome back',username
注意:用户所输入的任何内容,都将保存成字符串。
查看raw_input的帮助
>>>help(raw_input)
  1. 可引用getpass模块
  2. #!/usr/bin/env python
  3. import getpass
  4. user = raw_input('username:')
  5. #passwd = raw_input('password:')
  6. passwd = getpass.getpass()
  7. if user == 'bob' and passwd == '123456':
  8. print 'login successful!'
  9. else:
  10. print 'login lost'

八、注释
和shell脚本一样,可使用#进行注释
使用在线文档功能。如上面打印*号的例子
  1. #!/usr/bin/env python
  2. ''' this is my python
  3. this is 1 python
  4. '''
  5. def pstar():
  6. "this is print 50 stars"
  7. print '*' * 50
  8. python
  9. >>> import star
  10. >>> help (star)
  11. Help on module star:
  12. NAME
  13. star - this is my python
  14. FILE
  15. /root/bin/star.py
  16. DESCRIPTION
  17. this is 1 python
  18. >>>help (star.pstar)
  19. Help on function pstar in module star: pstar() this is print 50 stars

若要支持中文
添加#coding:utf8

写一个小程序。提示用户输入用户名和密码。如果用户名是bob,密码是123456,就提示用户登陆成功,否则提示失败。
  1. #!/usr/bin/env python
  2. user = raw_input("username:")
  3. passwd = raw_input("password:")
  4. if user == "bob" and passwd == "123456":
  5. print "login ok"
  6. else:
  7. print "login lost"

运算符
+(加)    -(减)    *(乘)    /(除)    %(取余)    //(地板除)    **(次方)
比较运算符
<    <=    >     ==    !=
逻辑运算符
and        or         not
 
九、变量
变量可以使用的字符包括字母、数字和下划线,但是数字不能是第一个字符。虽然变量可以以_作为第一个字符,但是系统中有很多相关的名称以_开头,有特殊含义,所有不建议使用以_开头的变量。变量的名称区分大小写,即str1和Str1是不同的
在对变量赋值的时候,如果要把一个数字以字符串的方式赋值给变量,那么必须用引号
注意:python不支持 i++或++i这样的写法
以0开头为8进制,以0X开头为16进制
 python支持五种基本数字类型,其中三种是整数类型
int(有符号整数)
long(长整数)
bool(布尔值)
float(浮点值)
complex(复数)

字符串
使用单引号、双引号、三引号标识的部分都表示字符串,字符串是一个序列类型,也就是可以使用下标来取出第N个字符
  1. >>> str = 'python'
  2. >>> str[0]
  3. 'p'
  4. >>> str[6] 会报错,IndexError,因为下标是从05
  5. Traceback (most recent call last):
  6. File "<stdin>", line 1, in <module>
  7. IndexError: string index out of range
  8. >>> str[-2] 负数表示从右向左取
  9. 'o'
  10. >>> str[2:5] 字符串也支持切片功能,取出下标是第三到第五个字符。注意后面的数字所对应的字符不会被取出
  11. 'tho'
  12. >>> str[2:10] 取出下标从3到末尾的全部字符(因为一共只有6个字符)
  13. 'thon'
  14. >>> str[2:] 取出下标从2到末尾的全部字符
  15. 'thon'
  16. >>> str[:4] 取出从开头到下标为3的字符
  17. 'pyth'
字符串连接操作+号
  1. >>> a = 'this is'
  2. >>> b = 'python'
  3. >>> print a + ' ' + b
  4. this is python
  5. 重复字符串使用*号
  6. >>> print b * 2
  7. pythonpython
在字符串中定义控制字符,如字符串中间有回车
  1. >>> a = 'this\nis'
  2. >>> print a
  3. this
  4. is
  5. >>> a
  6. 'this\nis'
  7. >>> a = '''this
  8. ... is'''
  9. >>> a
  10. 'this\nis'
  11. >>> print a
  12. this
  13. is

十、列表和元组
与字符串类似,列表和元组也属于序列类型,即它们也支持切片、下标。列表和无级的区别是列表是可变以,元组不可变
  1. >>> alist = [1,'abc',2,'def']        定义一个列表
  2. >>> print alist            查看列表
  3. [1, 'abc', 2, 'def']
  4. >>> alist[3]            取出def
  5. 'def'
  6. >>> alist[1][2]        取出abc中的c
  7. 'c'
  8. >>> alist[:2]        取为从头到abc
  9. [1, 'abc']
  10. >>> alist.append(3)        向列表追加新元素
  11. >>> alist
  12. [1, 'abc', 2, 'def', 3]
  13. >>> alist.append('ghi')
  14. >>> print alist
  15. [1, 'abc', 2, 'def', 3, 'ghi']
  16. 给def重新赋值
  17. >>> alist[:4]
  18. [1, 'abc', 2, 'aaa']
  19. >>> alist[1] = 'bbb'
  20. >>> print alist
  21. [1, 'bbb', 2, 'aaa', 3, 'ghi']
  22. 判断某一个对象是否在列表中
  23. >>> 'aaa' in alist
  24. True
  25. >>> 'ccc' in alist
  26. False

  27. 对于元组来说,大多数的操作和列表一样,只是它不可变的。
  28. 定义一个元组
  29. >>> blist = (1,'aaa',2,'bbb')
  30. >>> print blist
  31. (1, 'aaa', 2, 'bbb')
十一、字典
字是一个映射类型,使用键-值的方式表示数据,没有下标
  1. adict = {'name':'tom','age':23}    定义一个字典
  2. >>> adict {'age': 24, 'name': 'tom'}
  3. >>> adict['name']    取出值
  4. 'tom'
  5. >>> adict['age']=24    修改
  6. >>> adict
  7. {'age': 24, 'name': 'tom'}
  8. >>> adict['city']='SH'        添加,如何没有则添加一个键和值,有则修改
  9. >>> adict
  10. {'city': 'SH', 'age': 24, 'name': 'tom'}
  11. >>> adict.keys()            查看所有键名
  12. ['city', 'age', 'name']

十二、各种数据类型的区别
1、数字、字符、元组是不可变类型;列表、字典是可变类型。列表和字典,可以修改其中某些项目的值。但是不能直接改变一个字符串中的某一个字母,也不能修改元组中的某一项的值。
2、字符串、元组、列表是序列类型,而字典是映射类型。
3、字典、元组、列表是容器类型的。

十三、扩展
列表、元组以及字典中的元素都可以包含其他类型
  1. >>> adict = {'tom':['male',23],'bob':['male',25]}        字典里加列表
  2. >>> adict
  3. {'bob': ['male', 25], 'tom': ['male', 23]}
  4. >>> adict['bob'][1]
  5. 25

十四、if语句
判断成绩
  1. #!/usr/bin/env python
  2. #coding:utf8
  3. a = int(raw_input('enter ?:'))
  4. if a >= 90:
  5. print 'ok'
  6. elif a >= 75:
  7. print 'good'
  8. elif a >= 60:
  9. print 'pass'
  10. else:
  11. print 'no pass'
编写一个石头、剪刀、布的游戏。你和计算机各出一项,判断输赢
提示:可使用random模块中的choice随机在一个列表中某一项
import random
a = ['石头','剪刀','布']
b= random.choice(a)
print b

方法一:将胜利的定一个列表,从中查找,若没有,则平局或失败
  1. #!/usr/bin/env python
  2. #coding:utf8
  3. import sys
  4. import random
  5. alist = ['剪刀','石头','布']
  6. winlist = [['剪刀','布'],['石头','剪刀'],['布','石头']]
  7. ainput = '''(0)剪刀
  8. (1)石头
  9. (2)布
  10. this is:'''
  11. anum = raw_input(ainput)
  12. if anum not in '012':
  13. print "is 0/1/2"
  14. sys.exit(1)
  15. jsb = random.choice(alist)
  16. a = alist[int(anum)]
  17. print "you this is :",a,'\n computer is :',jsb
  18. if a == jsb:
  19. print '\033[32;1mflat\033[0m'
  20. elif [a,jsb] in winlist:
  21. print '\033[31;1myou win\033[0m'
  22. else:
  23. print '\033[31;1myou lose\033[0m'

方法二:根据字典下标
  1. #!/usr/bin/env python
  2. #coding:utf8
  3. import random
  4. import sys
  5. list = ['剪刀','石头','布']
  6. dict = {'剪刀':0,'石头':1,'布':2}
  7. input ='''(0)剪刀
  8. (1)石头
  9. (2)布
  10. this is: '''
  11. num = raw_input(input)
  12. if num not in '012':
  13. print '0/1/2'
  14. sys.exit(1)
  15. jsb = random.choice(list)
  16. a = list[int(num)]
  17. if a == jsb:
  18. print 'flat'
  19. elif (dict(a) - dict(jsb) == 1) or (dict(a) - dica(jsb) == -2):
  20. print 'you win'
  21. else:
  22. print 'you lose'









posted @ 2016-12-19 14:14  Final233  阅读(252)  评论(0编辑  收藏  举报