zoukankan      html  css  js  c++  java
  • 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 is'
    2. >>> print a
    3. this
    4. is
    5. >>> a
    6. 'this is'
    7. >>> a = '''this
    8. ... is'''
    9. >>> a
    10. 'this is'
    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,' computer is :',jsb
    18. if a == jsb:
    19. print '33[32;1mflat33[0m'
    20. elif [a,jsb] in winlist:
    21. print '33[31;1myou win33[0m'
    22. else:
    23. print '33[31;1myou lose33[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'









  • 相关阅读:
    Java 强、弱、软、虚,你属于哪一种?
    为啥阿里巴巴规定要在 @Transactional 指定 rollbackFor?
    DataGrip 上手体验,真香!
    日志框架选型,Logback 还是 Log4j2?
    基于OpenLayers和ArcGIS Server REST的要素信息保存功能
    基于Openlayers和Arcgis Server REST实现地图(要素)点击查询功能
    使用OpenLayers加载ArcGIS Server矢量图层
    ArcGIS Server在线编辑功能
    使用OpenLayers显示百度地图
    如何分析SAP ABAP的SYSTEM_NO_ROLL运行时错误
  • 原文地址:https://www.cnblogs.com/fina/p/6197286.html
Copyright © 2011-2022 走看看