zoukankan      html  css  js  c++  java
  • Python基础

    Python基础

    1、hello world

    字符串单双引号即可,'''或"""三引号也可以,通常用于多行文档原生输出。

    #双引号
    >>>print "hello world"
    
    #单引号
    >>>print 'hello world'
    
    #方法调用
    >>>print('hello world')
    >>>print("hello world")
    
    #,号结尾不换行打印
    >>>print "hello world" ,
    

    2、编写python脚本与中文乱码

    2.1 创建python文件test.py

    print(100)
    print('中国人')
    

    2.2 执行python文件

    $>python test.py
    

    2.4 出现如下错误

    python_003

    2.5 文件中添加utf-8字符集声明

    #-*- coding:utf-8 -*-
    print(100)
    print('中国人')
    

    2.6 执行打印

    $>python test.py
    

    2.7 结果如下

    python_004

    3、变量无序声明,拿来即用

    #无需定义变量
    >>>x = 1000
    >>>print(x)
    

    4、缩进格式定义代码块

    #以缩进方式代表代码块
    if True :
        pass
        print "hello world1"
    else :
        print "hello world2"
    

    5、一条语句换行

    x = 1 + 
        2 + 
        3 + 
        4
    

    6、String

    6.1 定义方式

    s = 'hello world'
    s = "hello world"
    
    #格式原样输出,可用于注释
    s = """
    hello world
    hello world
    
    hello world
    hello world
    """
    
    #定义unicode字符方式
    s = u"hello u0061"
    

    6.2 字符串操作

    s = "hello world"
    print s[0]		#
    print s[2:4]	#ll,前包后不包
    print s[2:]		#llo world
    print s[:4]		#hell
    print s[:-1]	#hello worl
    print s[:]		#hello world
    
    #重复几遍操作
    print s * 2		#hello worldhello world
    
    #滤除两边的空格,等价于trim
    " hello world ".strip(" ")
    #滤除左边的指定字符
    " hello world ".lstrip(" 
    	
    ")
    #滤除右边的字符
    " hello world ".rstrip("
    ;")
    

    6.3 格式化操作

    #a is 1 , b is 2
    s = "a is %d , b is %d"%(1,2)	
    
    #a is 1 , b is 2
    s = "a is {x} , b is {y}".format(x = 1 , y = 2)
    

    7、变量定义

    #变量必须初始化
    a= 100
    
    #错误,没有赋值
    b
    
    #同时定义多个变量并赋值
    a , b , c = 1 , 2 ,3
    

    8、python数据类型

    #int
    a = 100
    
    #float
    a = 100.0
    
    #long
    a = 100L
    
    #复数
    a = 0 + 1j
    
    #j的平方是-1
    print pow(a , 2)
    
    #string
    a= "www.baidu.com"
    #int不能和string直接相加,需要转换类型
    #转换成string
    str(100)
    

    9、list

    list表示列表或数组,可以重复,有序,等同于java中的list集合,list内容可以修改。

    9.2 list操作

    list = [1,2,3,4]
    print list[0]
    print list[0:2]
    print list[2:]
    print list[:4]
    print list[:-1]
    
    #重复操作
    print list * 2
    
    #重新赋值
    list[1] = 100
    print list[1]
    

    9.2 99表格

    rows = [1,2,3,4,5,6,7,8,9]
    cols = [1,2,3,4,5,6,7,8,9]
    
    #for循环,输出99表格
    for r in rows :
        for c in range(1 , r+1) :
            if c <= r :
                print str(c)+"x" + str(r) + "=" + str(c * r) + str("	"),
        print
    

    9.3 range对象

    range是范围对象,指定起始(包括)、结束(不包括)和步长。

    # 1,3,5,7,9
    r = range(1 , 10 , 2)
    
    #默认步长1
    r = range(1 , 4)
    

    10、元组

    元组类似于数据表中的一条记录,每个组员有不同的类型,内容不能修改,使用()表示。

    t = (1 , "tom" , 12)
    #访问第一个组员
    print t[0]
    print t[2:]
    
    #错误,不可以赋值
    t[1] = "tomas"
    

    11、字典

    字典等同于java中的map,使用kv方式存储。通过key查找v。使用{}构造。

    11.1 dict基本操作

    d = {1:"tom1" , 2 : "tom2" , 3 : "tom3"}
    #使用的key,不是下标
    print d[1]
    
    #可以修改值
    d[1] = "tomas"
    
    
    

    11.2 遍历字典

    d = {1:"tom1" , 2 : "tom2" , 3 : "tom3"}
    #遍历所有keys
    for k in d.keys():
        print k
        
    #遍历所有values
    for v in d.values():
        print v
    
    #遍历所有条目
    for k,v in d.items():
        print "%d -> %s"%(k,v)
        
    #遍历所有条目2
    for e in d.items():
        print "%d -> %s"%(e.key(),e.value())
    
    
    

    12、类型转换

    #str()转成字符创
    print str(100) + "2000"
    
    #int()
    print int('100') + 200
    
    #float()
    print float('100')
    
    #eval()将字符串表示的表达式转换成表达式运算
    print(eval("1 + (1 - (1 * (1 / (1 + 2))))"))
    
    #将对象转换成string表示
    print repr(d)
    
    list = [1,1,1,2,2,3]
    set = set(list)    #不重复集合
    print set
    
    

    13、set

    set不重复,可以使用list集合来创建set集合。

    list = [1,1,1,2,2,3]
    
    #1,2,3
    set = set(list)
    

    14、运算符

    print 1 + 2
    print 1 - 2
    print 1 * 2
    print 1 / 2         #整除
    print 1 % 2			#取模
    print 2 ** 3        #幂运算 8
    print 1.0 / 2       #小数除 0.5
    print 1.0 // 2      #整除   0
    

    15 、进制变换

    print hex(97)   #转换成十六进制串  0x61
    print oct(97)   #转换成八进制串    0141
    print chr(97)   #将ascii转换成字符 a 
    

    16、位运算

    print 0 & -1	#0
    print 0 | -1	#-1
    print 0 ^ -1	#-1
    print ~ 1		#-2
    print 1 << 1	#2
    print -1 >> 1	#-1 ,有符号移动
    

    17、逻辑运算

    print True and False	#and	
    print True or False		#or
    print not False			#not
    

    18、成员运算

    list = [1,2,3,4]
    print 1 in list		#True
    

    19、身份运算

    身份运算和==相似,“==”判断对象内容是否相同,is判断对象是否是同一对象。

    a = [1,2,3,4]
    b = a[:]
    
    print a is b	#False ,不是同一对象 
    print a == b	#True  ,内容相同
    

    20、条件语句

    条件语句语法是if ... elif ... else ..。

    age = 30
    if age < 18 :
        print "少年"
    elif age > 50:
        print "老年"
    else :
        print "中年"
    

    21、循环

    21.1 for循环

    list = [1,2,3,4]
    for x in list:
        print x
    

    21.2 while循环

    #实现9x9乘法表
    row = 1
    while row <= 9:
        col = 1
        while col <= row:
            print str(col) + "x" + str(row) + "=" + str(col * row) + "	",
            col += 1
        print
        row += 1
        
    #百钱买百鸡问题
    #公鸡数
    cock = 0
    #母鸡数
    hen = 0
    #小鸡数
    chicken = 0
    
    for x in range(0, 20 + 1):
        for y in range(0, 34):
            for z in range(0, 301, 3):
                sum = x * 5 + 3 * y + z / 3
                count = x + y + z
                zz = z / 3
                if sum == 100 and count == 100:
                    print "公鸡 :%d,母鸡:%d,小鸡:%d".%(x,y,z)
    

    22、定义函数

    22.1 定义普通函数

    普通函数直接调用,不需要通过对象访问。

    #函数需要返回语句
    def add(a , b) :
        return a + b
    
    #调用函数
    print add(1,2)
    

    22.2 定义类的成员函数

    在类中定义的函数,需要通过对象访问。

    class Foo:
        def add(self , a  , b):
            return a + b ;
    
    #调用成员函数
    Foo().add(1,2) ;
    

    22.3 变长参数与关键字参数

    #*args表示任何多个无名参数,它是一个tuple
    #**kwargs表示关键字参数,它是一个dict
    def foo(*args,**kwargs):
    	print 'args=',args
    	print 'kwargs=',kwargs
    	print '**********************'
        
    #调用
    foo(1,2,3)
    foo(a=1,b=2,c=3)
    foo(1,2,3,a=1,b=2,c=3)
    #输出结果
    args= (1, 2, 3)
    kwargs= {}
    **********************
    args= ()
    kwargs= {'a': 1, 'c': 3, 'b': 2}
    **********************
    args= (1, 2, 3)
    kwargs= {'a': 1, 'c': 3, 'b': 2}
    

    23、IO操作

    # -*-coding:utf-8-*-
    f = open("d:\java\1.txt")
    # 读取所有行
    lines = f.readlines()
    for l in lines:
        print l ,
    
    # 读取一行
    # readLine读取的整行,如果是空行的话,不为None,有换行符。
    f = open("d:java1.txt")
    while(True):
        line = f.readLine()
        if line != '':
            print line
        else:
            break 
        
    str = 
    """
    helll world
        helll world
            helll world
                helll world
                    helll world
    """
    
    #写入文件 mode=r | wb |
    # w : overwrite覆盖模式
    # a : append追加模式
    f2 = open("d:\java\2.txt" ,mode="ab")
    f2.write(str)
    f2.close()
    
    #重命名文件
    import os
    os.renames("d:\java\2.txt" , "d:\java\2222.txt")
    os.remove("d:\java\2222.txt")
    os.mkdir()
    
    dir = open("d:\")
    
    #列出目录信息
    list = os.listdir("d:\")
    for e in list:
        # 中文路径问题需要unicode编码
        print unicode(strPath , "GB2312")
    
    #判断是否是文件
    import os
    os.path.isfile("d:\java\1.txt")
    
    #导入其他模块的成员
    from util import *
    print add(1,2)
    

    24、模块判断与参数提取

    24.1 主函数运行

    #判断当前文件是否直接运行,还是被其他引用
    #直接运行的时候值为"__main__"
    if __name__ == '__main__':
        print 'hello world'
        
    
    

    24.2 参数提取

    通过sys的argv属性提取参数列表:

    import sys
    #提取脚本执行时的参数
    r = sys.argv
    r[0]			# 脚本本身路径
    r[1]			# 第一个参数
    

    24.3 反射访问

    print getattr(obj , "name")
    

    25、日期函数

    import datetime
    datetime.datetime.now()
    datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    '''
    strftime(format[, tuple]) -> string
    将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
    python中时间日期格式化符号:
    %y 两位数的年份表示(00-99)
    %Y 四位数的年份表示(000-9999)
    %m 月份(01-12)
    %d 月内中的一天(0-31)
    %H 24小时制小时数(0-23)
    %I 12小时制小时数(01-12)
    %M 分钟数(00=59)
    %S 秒(00-59)
    %a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366)
    %p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称
    %% %号本身
    '''
    
  • 相关阅读:
    JavaScript语言基础
    IP地址分类及CIDR划分方法
    Python静态方法实现单实例模式
    【转载】http和socket之长连接和短连接
    DDoS攻击
    Vue自定义过滤器
    解决跨域问题
    微信菜单创建
    canvas标签(1)--线条、矩形、圆形、文本、阴影、抛小球
    Bootstrap CSS概览代码文字标注篇
  • 原文地址:https://www.cnblogs.com/xupccc/p/9543922.html
Copyright © 2011-2022 走看看