zoukankan      html  css  js  c++  java
  • Python基本语法一

    变量赋值简单粗暴不需要声明类型, 灵活多变,非常好用。

    数字数据类是不可改变的数据类型,改变数字数据类型会分配一个新的对象。

    字符串的操作有基本的功能不需要再自己进行拼接遍历的操作。

    列表用 "[ ]" 标识类似 C 语言中的数组。

    元组用 "( )" 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

    字典用 "{ }" 标识。字典由索引 key 和它对应的值 value 组成。

    变量赋值

    a = 1
    b = "god"

    字符串赋值

    str = 'this is string 1'

    列表串赋值

    list = ['this', 'is', 'list', 2]

    元组赋值

    tuple = ('this', 'is', 'tuple', 3)

    字典赋值

    dict = {1:'this', 2:'is', 3:'dictionary', 4:4}

    数据类型 分为数字型和非数字型。

    数字型包括整型,长整型,浮点型,复数型;

    非数字型包括字符串,列表,元组和字典 ;

    非数字型的共同点:都可以使用切片、链接(+)、重复(*)、取值(a[])等相关运算;

    非数字型的不同点:

    列表 可以直接赋值,元组不可以赋值,字典按照 dict[k]=v 的方式赋值。

    is 与 == 区别:

    is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

    条件语句

    由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

    循环语句

    While 循环语句

    while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立

    while … else 在循环条件为 false 时执行 else 语句块

    for 循环语句

    for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

    Python math 模块、cmath 模块

    Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。

    Python math 模块提供了许多对浮点数的数学运算函数。

    Python cmath 模块包含了一些用于复数运算的函数。

    要使用 math 或 cmath 函数必须先导入:

    import math
    import cmath

      

    列表(List)

    对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    list = []          ## 空列表
    list.append('Google')   ## 使用 append() 添加元素
    list.append('Runoob')
    print list

    可以使用 del 语句来删除列表的元素

     
    list1 = ['physics', 'chemistry', 1997, 2000]
     
    print list1
    del list1[2]

     Python列表脚本操作符

    Python列表截取

    Python列表函数&方法

    元组

    Python的元组与列表类似,不同之处在于元组的元素不能修改。

    元组使用小括号,列表使用方括号。

    修改元组

    元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    tup1 = (12, 34.56)
    tup2 = ('abc', 'xyz')
     
    # 以下修改元组元素操作是非法的。
    # tup1[0] = 100
     
    # 创建一个新的元组
    tup3 = tup1 + tup2
    print tup3

    删除元组

    元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

    #!/usr/bin/python
     
    tup = ('physics', 'chemistry', 1997, 2000)
     
    print tup
    del tup
    print "After deleting tup : "
    print tup

    元组内置函数

     字典(Dictionary)

    访问字典里的值

    #!/usr/bin/python
     
    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
     
    print "dict['Name']: ", dict['Name'];
    print "dict['Age']: ", dict['Age'];

    修改字典

    #!/usr/bin/python
     
    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
     
    dict['Age'] = 8; # update existing entry
    dict['School'] = "DPS School"; # Add new entry
     
     
    print "dict['Age']: ", dict['Age'];
    print "dict['School']: ", dict['School'];

    删除字典元素

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
     
    del dict['Name']; # 删除键是'Name'的条目
    dict.clear();     # 清空词典所有条目
    del dict ;        # 删除词典
     
    print "dict['Age']: ", dict['Age'];
    print "dict['School']: ", dict['School'];

    字典键的特性

    1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

    2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行

    日期和时间

    Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。

    函数time.time()用于获取当前时间戳

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    import time;  # 引入time模块
     
    ticks = time.time()
    print "当前时间戳为:", ticks

    获取当前时间

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    import time
     
    localtime = time.localtime(time.time())
    print "本地时间为 :", localtime

    结果:

    time.struct_time(tm_year=2018, tm_mon=8, tm_mday=1, tm_hour=10, tm_min=47, tm_sec=25, tm_wday=2, tm_yday=213, tm_isdst=0)

    获取格式化的时间

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    import time
     
    localtime = time.asctime( time.localtime(time.time()) )
    print "本地时间为 :", localtime

    结果:

    Wed Aug 01 10:49:31 2018

    格式化日期

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    import time
     
    # 格式化成2016-03-20 11:45:39形式
    print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
     
    # 格式化成Sat Mar 28 22:24:24 2016形式
    print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) 
      
    # 将格式字符串转换为时间戳
    a = "Sat Mar 28 22:24:24 2016"
    print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

    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 当前时区的名称
    • %% %号本身

    获取某月日历

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    import calendar
     
    cal = calendar.month(2016, 1)
    print "以下输出2016年1月份的日历:"
    print cal

    函数

    定义一个函数

    你可以定义一个由自己想要功能的函数,以下是简单的规则:

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
    • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

    语法

    def functionname( parameters ):
       "函数_文档字符串"
       function_suite
       return [expression]

    例子

    def printme( str ):
       "打印传入的字符串到标准显示设备上"
       print str
       return

    匿名函数

    python 使用 lambda 来创建匿名函数。

    • lambda只是一个表达式,函数体比def简单很多。
    • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
    • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
    • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

    语法

    lambda [arg1 [,arg2,.....argn]]:expression
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    # 可写函数说明
    sum = lambda arg1, arg2: arg1 + arg2;
     
    # 调用sum函数
    print "相加后的值为 : ", sum( 10, 20 )
    print "相加后的值为 : ", sum( 20, 20 )

     文件I/O

    读取键盘输入

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘。如下:

    • raw_input:从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符)
    • input:和 raw_input([prompt]) 函数基本类似,但是 input 可以接收一个Python表达式作为输入,并将运算结果返回
    #!/usr/bin/python
    # -*- coding: UTF-8 -*- 
     
    str = raw_input("请输入:")
    print "你输入的内容是: ", str

    打开和关闭文件

    open 函数

    你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写

    语法

    file object = open(file_name [, access_mode][, buffering])

    各个参数的细节如下:

    • file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
    • access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
    • buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

    File对象的属性

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    # 打开一个文件
    fo = open("foo.txt", "w")
    print "文件名: ", fo.name
    print "是否已关闭 : ", fo.closed
    print "访问模式 : ", fo.mode
    print "末尾是否强制加空格 : ", fo.softspace

    close()方法

    File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。

    当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。

    语法:

    fileObject.close()

    write()方法

    write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

    write()方法不会在字符串的结尾添加换行符(' '):

    语法:

    fileObject.write(string)

    read()方法

    read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

    语法:

    fileObject.read([count])

    文件定位

    tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后。

    seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

    如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

    重命名和删除文件

    Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。

    要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。

    rename()方法:

    rename()方法需要两个参数,当前的文件名和新文件名

    语法:

    os.rename(current_file_name, new_file_name)

    remove()方法

    你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。

    os.remove(file_name)

    mkdir()方法

    可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。

    语法:

    os.mkdir("newdir")

    异常处理

    捕捉异常可以使用try/except语句。

    try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

    如果你不想在异常发生时结束你的程序,只需在try里捕获它。

    语法:

    以下为简单的try....except...else的语法:

    try:
    <语句>        #运行别的代码
    except <名字><语句>        #如果在try部份引发了'name'异常
    except <名字>,<数据>:
    <语句>        #如果引发了'name'异常,获得附加的数据
    else:
    <语句>        #如果没有异常发生

    例子

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    try:
        fh = open("testfile", "w")
        fh.write("这是一个测试文件,用于测试异常!!")
    except IOError:
        print "Error: 没有找到文件或读取文件失败"
    else:
        print "内容写入文件成功"
        fh.close()

    try-finally 语句

    try-finally 语句无论是否发生异常都将执行最后的代码。

    try:
    <语句>
    finally:
    <语句>    #退出try时总会执行
    raise

    触发异常

    我们可以使用raise语句自己触发异常

    raise语法格式如下:

    raise [Exception [, args [, traceback]]]
    def functionName( level ):
        if level < 1:
            raise Exception("Invalid level!", level)
            # 触发异常后,后面的代码就不会再执行
  • 相关阅读:
    [SHOI2008]堵塞的交通
    [SHOI2008]汉诺塔
    [JSOI2008]最小生成树计数
    [JSOI2008]球形空间产生器
    [HNOI2014]画框
    HDU 2255 奔小康赚大钱
    [SDOI2017]新生舞会
    [BZOJ2285][SDOI2011]保密
    [BZOJ3232]圈地游戏
    [HDU5909]Tree Cutting
  • 原文地址:https://www.cnblogs.com/wuyn/p/9392572.html
Copyright © 2011-2022 走看看