zoukankan      html  css  js  c++  java
  • python2

    python的算法
    3.0/2 --1.5
    3.0//2 --1.0 地板除
    5%2 --1 取余数
    a=20 a+=20 --a=40 a%=4 -- =4

    raw_input 获取一个数字

    /usr/bin/python
    a=int(raw_input(Please enter a number1:))
    b=int(raw_input(number2:))
    print(a+b)
    print(a*b)
    print(a-b)
    print(a/b)
    print(a%b)

    --转译字符
    斜杠转义字符 将特殊字符转译成普通字符()
    say = "let's,"go""

    换行
    缩进 ·

    cmp(a,b) 比较ab字符串是否相同 相同返回0,a>b返回1 a<b 返回-1
    len(a) a长度
    *重复 a=123 print a*3 --123123123
    in 判断是否在 变量里面 是 true 否false


    查看变量存储空间 id(a)
    Python 现在存储空间存储一个字符串 并且定义一个标签 这个标签就是他的id


    userinfo="wang 25 man" 如何取名称
    userinfo[0:4] 这个很不方便 空格影响索引取值
    --元组(tuple)
    元祖可以很好的去规避这个问题
    userinfo1=(wang,25,man)
    userinfo1[1] --wang
    userinfo1[2] --25
    userinfo1[3] --man
    a=(3) b=(3,) c=() type(a) --int type(b) --tuple type(c) --tuple

    元组拆分
    userinfo1=(wang,25,man)
    name,age,gender=userinfo1
    print(name) --wang
    print(age) --25
    a,b,c=(1,2,3) 多变量元素定义,一一对应
    元组的特点 不可改变 存储数据安全性高

    列表类型(list)
    列表最大的特征可变的:list=['wang','jia','sen'] list[0] --wang
    修改列表中的元素:
    取值:切片和索引都可以 list[1] list[0:2] list[0:3:2]
    修改元素:list[0]='wangwang' print list --['wangwang','jia','sen']
    添加元素:list.append("17805121968") print list --['wangwang','jia','sen','17805121968']
    删除元素:list.remove(list[3]) print list --['wangwang','jia','sen'] 注:list.remove('17805121968')
    del(list[0]) print list --['jia','sen']

    理解对象和类 对象=属性+方法 如:list1=[1,2,3,4,5] list = list1(定义的列表) + append (方法)
    (使用点号来使用对象的方法:list.remove())

    字典(type:dict)
    t1=['name','age','gender']
    t2=['wang','25','man']
    print zip(t1,t2) --[('name','wang'),('age','25'),('gender','man')] 注:zip函数
    格式:dict={key:value}
    dict1={"name":"wang","age":24,"gender":"man"} print dict1['name'] --["wang"]
    定义:a=123 b=456 dic3={a:'aaa','b':'bbb'} print dic3 --{123:'aaa','b':'bbb'}
    访问字典: dic4={"name":"wang","age":24,"gender":"man"}
    for k in dic4:
    print k 返回 所有的key
    for k in dic34
    print dic4[k] 返回所有的 values
    字典是可变的
    增加字典:dic4={"name":"wang","age":24,"gender":"man"}
    dic4['tel']='17805121968' print dic4 --{"name":"wang","age":24,"gender":"man",'tel':'17805121968'}
    修改字典:
    dic4['tel']='15755028513' print dic4 --{"name":"wang","age":24,"gender":"man",'tel':'15755028513'}
    删除字典值:del(dic4['tel']) print dic4 --{"name":"wang","age":24,"gender":"man"}
    dic4.pop('age') print {"name":"wang","gender":"man"}
    清空字典:dic4.clear() print dic4 -- {}
    删除字典:del(dic4) 注:del系统函数

    工厂函数:zip
    dict(zip('x','y'),(1,2)) 或者 dic(x=1,y=2) print {'x':1,'y':2}
    copy 生成字典更快
    dic4.get(3,'erro')
    dic4.keys() dic4.values()

    dict.fromkeys(seq,value)用法
    如:seq=('name','age','gender')
    dic6=dict.fromkeys(seq)
    print dic6 --{'gender': None, 'age': None, 'name': None}
    dic7=dict.fromkeys(seq,10)
    print dic7 --{'gender': 10, 'age': 10, 'name': 10}
    判断字典中是否在key --dict.has_key(key)
    print dic4.has_key('age') --true
    将字典返回出键值对元组的列表
    print dic7.items() --[('gender',10),('age',10),('name',10)]

    循环语句 -if else
    逻辑判断 True 非空非0的 False 0或者None 空的量
    定义一个函数: def fun()
    return 10
    if fun: --调用自定义函数fun 等同于 if 10:
    print "OK"

    def 和 if 的语法 注意“:” 缩进用4个空格代替
    #!/usr/bin/python
    def fun():
    return 10
    if fun()>2:
    print "OK"
    >> OK
    else语法(第一个判断为False 择进行else判断)
    #!/usr/bin/python
    def fun():
    return 10
    if fun()<2:
    print "OK"
    else:
    print "bad"
    >> bad

    #!/usr/bin/python
    def fun():
    return 0
    x=int(raw_input("please input :"))
    if x>=90:
    print "A"
    elif x>=80:
    print "B"
    elif x>=70:
    print "C"
    else:
    print "D"

    python3的判断语句
    #!/usr/bin/python
    def fun():
    return 10
    x=int(input("please inpute number:"))
    if x>100:
    print ("警告:请输入0~100的数字:")
    elif x>=90:
    print ("A")
    elif x>=80:
    print ("B")
    elif x>=70:
    print ("C")
    elif x>=60:
    print ("D")
    else:
    print ("不及格")

    且的判断
    if x>=90:
    if y>=90:
    嵌套判断:要求x大于等于90,并且y大于等于90 则输出


    逻辑结构:and or not
    if x>=90 and y>=90:
    print ("A")




    for i in I: 注:I为列表,i从列表中取元素,循环取元素,指导I列表元素耗尽
    for x in "abcd"
    print "hello world" --注意格式需要缩进
    >>hello world
    >>hello world
    >>hello world
    >>hello world

    range函数
    for i in range(a,b,c) a表示开始值 b表示结束值 c表示步进值 如 for i in range(1,100) 则循环100次
    >>> for i in range(1,10,2):
    ... print i
    ...
    1
    3
    5
    7
    9
    >>>
    >>> range(10)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    列子:从1加到100

    >>> num = 0
    >>> for x in range(1,101):
    ... num += x
    ... print num

    #!/usr/bin/python
    s = "hellop"
    for x in range(len(s)):
    print s[x]

    #!/usr/bin/python
    s = "hellop"
    l = [1,2,3,'a','b','c']
    t = (7,8,9,'x','y')
    for x in l:
    print x
    print t

    遍历字典
    #!/usr/bin/python
    s = "hellop"
    l = [1,2,3,'a','b','c']
    t = (7,8,9,'x','y')
    d = {1:111,2:222,3:333}
    for x in d:
    print d[x]
    取字典里面的key


    #!/usr/bin/python
    s = "hellop"
    l = [1,2,3,'a','b','c']
    t = (7,8,9,'x','y')
    d = {1:111,2:222,3:333}
    for x in d:
    print d[x]
    print d.items() (键、值对)
    >>
    111
    222
    333
    [(1, 111), (2, 222), (3, 333)]

    #!/usr/bin/python
    s = "hellop"
    l = [1,2,3,'a','b','c']
    t = (7,8,9,'x','y')
    d = {1:111,2:222,3:333}
    for x in d:
    print d[x]
    print d.items()
    for k,v in d.itmes():
    print k
    print v
    >>
    111
    222
    333
    1
    111
    2
    222
    3
    333

    python执行等待语法 导入模块 import time
    time.sleep(5) --等待5秒执行下一个python语句
    在for循环中,只要执行到break,循环将会结束,如果想要跳过本次循环:continue
    #!/usr/bin/python
    import time
    for x in range(1,11):
    print x
    if x == 3:
    pass #代码桩 -->如果这个if判断没有想要的结果,那么必须换行缩进,通常使用代码桩:pass
    if x == 2:
    print "hello 2"
    continue -> 跳过循环 下面的循环不执行
    if x == 6:
    break
    print "#"*10
    else:
    print "ending"
    for x in range(1,11):
    print "---------->",x

    跳过一下所有代码包括for循环以外的语法(exit()):
    #!/usr/bin/python
    import time
    for x in range(1,11):
    print x
    if x == 3:
    pass #代码桩 -->如果这个if判断没有想要的结果,那么必须换行缩进,通常使用代码桩:pass
    if x == 2:
    print "hello 2"
    continue -> 跳过循环 下面的循环不执行
    if x == 5:
    exit()
    if x == 6:
    break
    print "#"*10
    else:
    print "ending"
    for x in range(1,11):
    print "---------->",x


    循环函数while
    while Ture:
    print "hello" -->这是死循环,因为输出结果后继续执行判定条件,因为条件为真,所有一直执行


    #!/usr/bin/python

    while True:
    print "hello"
    x = raw_input("please input something,q for quit:")
    if x == "q":
    break
    输入q 结束
    这个语法还有另外的写法
    #!/usr/bin/python
    x = "" -->必须定义一下x,否则while循环无法判断x是什么
    while x != "q"
    print "hello"
    x = raw_input("please input something , q for quit :")

    #!/usr/bin/python
    x = ""
    while x != "q":
    print "hello"
    x = raw_input("please input something,q for quit:")
    if not x :
    break
    if x == "c":
    continue -->如何为ture的话,跳过本次循环,不执行else
    else:
    print "ending..."









    函数
    第一节函数:
    当我们自己定义一个函数时,语句:def(参数)
    def plg():
    如:def add():
    c = a + b
    print c
    调用add()

    #!/usr/bin/python
    a = 100
    def add():
    if True:
    print "good"
    print a
    add()
    add()

    --> good 100
    good 100
    因为print a 在def 语句里面 我调用了2次 所有打印2次


    #!/usr/bin/python

    def fun(x):
    print "i get a :",x
    s = raw_input("input something :")
    fun(s)


    #!/usr/bin/python

    def fun(x,y):
    if x == y:
    print x ,"=" ,y
    else:
    print x ,"!=" ,y
    m = raw_input("please input number1 :")
    n = raw_input("number2:")
    fun(m,n)

    缺省参数: def fun(x=5,y="奶油味


    变量:局部变量和全局变量的影响
    #!/usr/bin/python
    a = 100
    def fun():
    print a
    fun()

    def fun():
    a = 100
    print a
    fun() -->这个a是局部变量 智能共定义函数使用

    global 强制声明局部变量为全局变量
    a = "wang"
    def fun():
    global a
    a = 100
    global b
    b = 200
    print (b)
    fun()
    print (a)
    print (b)
    这个语句中出现两个全局变量 语句按照顺序将全部变量修改了赋值

    z = 10
    def f(x,y):
    print "welcome"
    return x+y -->这个return用来返回这个函数的值得
    调用这个函数:f(2,3) -->welcome 5
    定义一个函数 z = f(2,3)
    print z 打印z的值是自定义函数中return返回的值 输出结果为:5,
    如果自定义函数没有return返回结果:
    print z 输出结果为: 10

    def f():
    print x,y
    t = ("a","b")
    f(t) 这个是不成立的

    def f(x,y):
    print "%s : %s" % x,y -->注:第三个%号表示向引号里面传值,传的这个值就是%后面的
    列: print "%s : %s : %s" % x,y,z
    -->x:y:z
    那么元组如何传:
    t = (a,b)
    def f(x,y):
    print "%s : %s" % (x,y)
    f(*t) --> a : b
    注意:*号格式,如果元组中元素个数和打印的个数不一样,就会报错
    如:
    t = ('a','b','c')
    def f():
    print "s% : s%" % (x,y)
    f(t)
    这个语法是不正确的

    def f(name="name",age=0):
    print "name : %s" % name
    print "age : %s" % age
    f(wang,24) -->
    name : wang
    age : 24
    f() 定义函数传参数为空,此时传的默认值
    name : name
    age : 0
    t=(wangjiasen,25)
    f(*t)
    结果:
    name : wangjiasen
    age : 25

    自定义函数传参格式:
    向函数传元组合字典:
    元组:fun(*args)
    字典:fun(**kwords)
    注意:元组传参数是有顺序的,字典传参数是无序的

    def f(name = "name",age = 30):
    print "name s%" % name
    print "age s%" % age
    d = {name = 'wangjiasen' , age = 25}
    f(**d)
    -—->name : wangjiasen
    age : 25
    如果字典中key和自定义函数中的变量不一样:
    那么:
    t = {'a' : 30,'b' : 'zhang'}
    f(d['a'],d['b'])

    常见的工作中,会遇到定义函数只需要传1个参数,但是传了超过1个参数的如何处理:
    处理多余实参的语法:def fun(*args,**kw)
    如:
    def f(x,*args):
    print x
    print args
    f(1)
    --->1
    ()
    f(1,2,3)
    --->1
    (2,3) 多余的参数将会生成元组


    f(x=4)
    --->4
    ()

    f(x=4,y=5)这样的传参是无法传到元组的
    那么:
    def f(x,*args,**kwargs):
    print x
    print args
    print kwargs
    f(1)
    --->1
    ()
    {}
    f(1,2,3,4,5,6,7)
    --->
    1
    (2,3,4,5,6,7)
    {}
    f(x=1)
    --->1
    ()
    {}
    f(x=1,y=2)
    --->x
    ()
    {'y' : 2}



    def f(x,*args,**kwargs):
    print x
    print args
    print kwargs
    注意:这个定义函数中的变量为x 那么传的参数中要注意,出一个参数以外,后面的参数不能出现x
    如:(1,2,3,4,x=10,y=20) 这个格式是不对的

    匿名函数:lambda 可以使用在任何地方
    def fun(x,y):
    return x*y
    print f(2,3)
    ---> 6
    g = lambda x,y:x*y
    print (g(2,3))
    --->6
    二者输出的结果一致


    g = lambda x:x**2
    冒号前面参数,冒号后面是公式

    reduce为逐次操作list里面的每项
    def f(n):
    if n > 0:
    n*f(n-1)


    l = range(1,6)
    l = [1,2,3,4,5]
    def f(x,y):
    return x*y
    阶乘:
    reduce(f,l)
    --->120

    同样
    h = lambda x,y:x*y
    reduce(h,l)
    --->120


    reduce(lambda x,y:x*y ,l)
    --->120

    语法switch:
    python可以通过字典实现switch语句的功能
    首先:定义一个字段
    其次:调用字典的get(),获取相应的表达式
    {1:case1,2:case2}.get(x,lambda *arg,**key:)()


    #!/usr/bin/python
    from __future__ import division


    def jia(x,y):
    return x+y

    def jian(x,y):
    return x-y

    def cheng(x,y):
    return x*y

    def chu(x,y):
    return x/y

    def operator(x,o,y):
    if o == "+":
    print jia(x,y)
    elif o == "-":
    print jian(x,y)
    elif o == "*":
    print cheng(x,y)
    elif o == "/":
    print chu(x,y)
    else:
    pass
    operator(2,'+',3)
    ---> 5


    def jia(x,y):
    return x+y

    def jian(x,y):
    return x-y

    def cheng(x,y):
    return x*y

    def chu(x,y):
    return x/y
    operator = {"+" : jia ,"-" : jian, "*" : cheng, "/" : chu}
    print operator ["+"](3,2)
    --->5
    print operator.get("%")(3,2)


    def fun(x,o,y):
    print operator.get(o)(x,y)
    当需要if判断 都可以用字典来满足

    内置函数:
    绝对值:abs()
    最大值:max()
    最小值:min()
    序列中原素长度:
    l = "hello"
    len(l) ---> 5
    h = [1,2,4,5,6,7,8,9,0,11]
    len(l) --->10


    divmod()
    pow()
    round()
    除法运算:
    divmod(5,2)
    --->(2,1) 商2余1
    pow(2,3) ---> 8 2的3次方
    pow(3,3,5) ---> 2 3的3次方除以5余2
    四舍五入函数
    round(9.98712,2) --->9.99

    callable()
    测试函数是否可被调用
    callable(max) --->Ture
    callable(m) ---> False

    isinstance()
    判断变量类型:
    l = [1,23,4]
    isinstance(l,list) ---> Ture
    isinstance(l,int) --->False


    cmp()
    比对,相同返回0,不相同返回-1

    range()
    range(10)

    xrange()
    xrange(100) 用于高运算 其实就是一个列表

    type int long float tuple str list 类型

    str.capitalize()
    ("hello").capitalize() --->Hello 首字母大写
    str.replace()
    字符替换:("hello world")replace("hello",'good') ---> "good world"
    ss="123123123"
    ss.replace('1','x',2) --->x23x23123

    str.split()
    ip ="192.168.1.155"
    ip.split('.')
    ['192','168','1','155']
    ip.split('.',2)
    ['192','168','1.155']

    综上格式:对象.函数
    序列处理函数
    filter()
    def f(x):
    if x > 5:
    return True
    l = [1,2,3,4,5,6,7,8,9]
    过滤出大于5的数
    filter(f,l)
    --->[6,7,8,9]
    zip()

    map()

    reduce()


    模块--自定义模块:所谓的代码封装
    divmod(5,2)
    --->(2,1) 商2余1
    pow(x,y)
    格式:(x**y)
    pow(x,y,z)
    格式:(x**y%z)
    round函数

  • 相关阅读:
    ORACLE AWR 和 ASH
    11g RAC R2 日常巡检--Grid
    Linux中重命名文件
    Xshell4连接Linux后 win快捷键锁屏
    vim 删除临时文件
    shell--read命令
    shell基础篇(一)从hello world开始
    ORACLE--分区表数据清理
    Shell—学习之心得
    awk 手册--【转载】
  • 原文地址:https://www.cnblogs.com/zhangqinANDwangjiasen/p/11131373.html
Copyright © 2011-2022 走看看