python基础(一)

一、python简介(自己了解)
二、安装python解释器

    CPython\IPython\PyPy\Jython\IronPython\
三、第一个python程序
    用notepad或editplus编辑一个*.py文件,在cmd里运行“python *.py”,例程如下:
    #hello.py注释
    print 'hello,world'  #输出:hello,world
    print 'hello','world'  #输出:hello world(逗号变空格)
    print '300+400=',300+400    #输出:300+400= 700(数字自行计算)
    name=raw_input()    #等待用户输入,输入后赋值给name变量,注意此时无论输入什么,name均为字符串
四、python基础知识
    (一)数据类型和变量
        整型:  1 100 -80 0 0xff00  #十六进制
        浮点型:1.23 -0.91 12.1e4 12.1e-2  #科学计数用e代替
        字符串:'abc' "abc" 'a\'bc' "a'bc" #字符串:注意转义符\
                \n换行符 \t制表符 \\就是\
                r'...' #不转义,直接输出'...'
                ''' ... '''  #多行输入,即...可以回车多行输入
        布尔值:true false 
                运算:and or not
        空值:  none #不能理解为0
        变量:  大小写英文、数字和_的组合,且不能用数字开头
                a=1 #整型变量
                t_007 = 'T007'  #字符串变量
                Answer = True  #布尔型变量
        常量:     通常以大写代替,但如果你脑残要改变它,python不会阻止你
                PI=3.1415
    (二)字符串和编码
        ASCII -> UTF-8 -> Unicode搞清楚
        ord('A') #显示65  chr(65) #显示A
        print u'中文' / u'中文' #前面显示:中文,后面显示'中文'的unicode码
        # -*- coding: utf-8 -*- #注意编写代码时加上声明
        len(u'ABC')  #输出3
        len(u'中文')  #输出2
        格式化:
            'Hello, %s' % 'world'  #输出:'Hello, world'
            'Hi, %s, you have $%d.' % ('Michael', 1000000) #输出:'Hi, Michael, you have $1000000.'
            '%2d-%02d' % (3, 1) #输出:' 3-01'
            '%.2f' % 3.1415926 #输出:'3.14'
            'Age: %s. Gender: %s' % (25, True)  #输出:'Age: 25. Gender: True'
            'growth rate: %d %%' % 7 #输出:'growth rate: 7 %'
             
    (三)使用list和tuple
        list:列表,可以正索引,也可以反索引,可以任意插入、弹出,列表里的数据类型任意,例如:
            students = ['bob','alpc','jim']
            students[2]  #输出'jim'
            students[-1] #输出'jim'
            students[-3] #输出'Bob'
            students.append('kate') #增加一个元素
            students.insert(1,'joseph') #在第一位置插入
            students.pop() #弹出最后一个元素
            students.pop(i) #弹出第i个元素
        tuple:元组,类似列表,但初始化后就不能改变,尽量使用哦,它使代码更安全
            t = ('a', 'b', ['A', 'B'])
            t[2][0]='X'
            t[2][1]='Y' #注意,这里改变的使元组里的列表,而不是元组

    (四)条件判断与循环

         条件判断:

            if ():
            elif():
            else:
        循环:
            for x in list:
            while x>0:
        t=int(raw_input('input your salary:')) #注意raw_input需要转型为整数
    (五)使用dict和set
        dict:字典,支持键-值(key-value)
            dd = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
            dd['Michael']     #输出95
            和list比较,dict有以下几个特点:
                1.查找和插入的速度极快,不会随着key的增加而增加;
                2.需要占用大量的内存,内存浪费多。    
            而list相反:
                1.查找和插入的时间随着元素的增加而增加;
                2.占用空间小,浪费内存很少。
        set:集合,不储存value,不重复key
             s = set([1, 1, 2, 2, 3, 3]) #相当于 set([1,2,3])
             s.add(key)/s.remove(key)
             s1=s.replace(1,5)//只能通过另外赋值
五、函数
    函数可以有别名,如:abs(-1) -> a=abs -> a(-1)    
    参数顺序:必选参数、默认参数、可变参数和关键字参数
    1.一般函数,参数检查
    def my_abs(x):
        if not isinstance(x,(int,float,double)):
            raise TypeError('bad operand type')
        if(x>=0):
            return x
        else:
            return -x
    2.空函数,用于占位
    def nop():
        pass
    3.返回多个数时,注意用多个变量接收,否则返回的是元组tuple
    def calc(x,y):
        return x,y        
    4.默认参数(默认参数可以不输入,使用默认值)
    def calc(x=6,y=8)
        return x+y
    默认参数有坑:
        def add_end(L=[])
            L.append('end')
            return L
    如果每次调用add_end(),'end'会随着调用增加,正确的方式是:
        def add_end(L=None):
            if L is None
                L=[]
            L.append('end')
            return L
    5.参数不定时,可以组装成列表或元组
        def calc(numbers):
            sum = 0
            for n in numbers:
                sum = sum + n * n
            return sum
        或者:
        def calc1(*numbers):
            sum = 0
            for n in numbers:
                sum = sum + n * n
            return sum
        调用时:calc([1,2,3]),calc1(1,2,3),calc(list),calc(*list)
    6.关键字参数
        def person(name, age, **kw):
            print 'name:', name, 'age:', age, 'other:', kw
        其中,name和age均需输入,其他参数为字典
六、高级特性
    (一)切片
        L[1:3] #取第二个和第三个元素
        L[-1:-3] #取倒数第1个到倒数第三个元素
        L=range(100) #L=[0,1,2,...,99]
        L[:10] #L=[0,1,...9]
        L[-10:] #L=[0,91,92,...99]
        L[:10:2] #L=[0,2,4,6,8]
        L[::5] #L=[0,5,10,...,95] 
    (二)迭代
        d={'a':1,'b':2,'c':3}
        for key in d:
            print key #打印'a''b''c'
        for key in d.itervalues()
            print key #打印 1,2,3
            
        from collections import Iterable
        isinstance('abc', Iterable) #true
        isinstance([1,2,3], Iterable) #true
        isinstance(123,Iterable) #false
        
        for i, value in enumerate(['A', 'B', 'C']):
        print i, value    #打印下标和字符
    (三)列表生成式
        1.range(1,10) #[1,2,3,...,9]
        2.[x * x for x in range(1, 11)] #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
        3.for i in range(1,11) #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
            L.append(i*i)
        4.[x * x for x in range(1, 11) if x % 2 == 0] #[4, 16, 36, 64, 100]
        5.[m + n for m in 'ABC' for n in 'XYZ']  #['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
        6.import os 
          [d for d in os.listdir('.')] #['.emacs.d', '.ssh', '.Trash', ]
        7.d = {'x': 'A', 'y': 'B', 'z': 'C' }
          for k, v in d.iteritems():
            print k, '=', v #y = B x = A z = C
        8.L = ['Hello', 'World', 'IBM', 'Apple']
          [s.lower() for s in L] #['hello', 'world', 'ibm', 'apple']
    (四)生成器
        1.g = (x * x for x in range(10))
          g.next()  #0
          g.next()    #1
          g.next()    #4
        2.g = (x * x for x in range(10))
          for n in g:
            print n    #0,1,4,9,...,81
        3.def fib(max):
          n, a, b = 0, 0, 1
          while n <= max:
            yield b        #每次调用时遇到yield返回,下次调用时,从yield开始执行到下一个yield
            a, b = b, a + b
            n = n + 1 
          fib(6)    #定义了一个生成器
          fib.next()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值