• Python基础知识-Day4


    一、函数关键字
    关键字是Python内置的,具有特殊意义的标识符,自定义标识符命名时不可与之重复。可以通过以下代码查看Python内置的关键字内容。

    import keyword
    print(keyword.kwlist)
    1
    2
    结果有[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
    一共有33个关键字。

    二、函数的定义
    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
    定义一个函数:可以定义一个任意功能的函数,以下是简单的规则:
    1) 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
    2) 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
    3) 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    4) 函数内容以冒号起始,并且缩进。
    5) return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
    函数定义使用def关键字,一般格式如下:
    def 函数名(参数列表):
    函数体

    三、函数参数与作用域
    1.调用函数时可使用的正式参数类型:
    a. 必需参数:
    必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。调用printme()函数,你必须传入一个参数,不然会出现语法错误。
    b. 关键字参数:
    关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为Python解释器能够用参数名匹配参数值。以下实例在函数printme()调用时使用参数名。
    c. 默认参数:
    调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值。
    d. 不定长参数:
    当需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数。和上述2种参数不同,声明时不会命名。基本语法如下:
    def functionname([formal_args,] *var_args_tuple ):
    “函数_文档字符串”
    function_suite
    return [expression]
    2.作用域分类:
    1)全局作用域:在整个程序运行环境中都可见。
    2)局部作用域:在函数、类等内部可见,局部作用域中的变量成为局部变量,适用范围不能超过其所在的局部作用域。

    四、函数返回值
    1.函数返回值可以是任意的数据类型
    2.如果有返回值:必须要用变量接收才会有效果
    3.函数可以没有返回值,默认返回给None,函数的返回值为None有三种情况:
    (1)不写返回值 (2)只写一个return(3)return None (几乎不用)
    4.return的作用:结束一个函数的执行
    5.函数的返回值不为None,有返回值返回一个值(一个变量),返回多个值(多个变量),多个值之间用逗号区分。
    接收:可以用一个变量接收,以元组的形式返回。也可以用多个变量接收,返回几个就用几个变量去接收,相当于解压式接收。

    五、File:
    a. 打开文件方式(读写两种方式)
    读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
    1.读文件:要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:
    f = open(’/Users/michael/test.txt’, ‘r’)
    r表示是文本文件,rb是二进制文件。(这个mode参数默认值就是r)
    如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在
    2. 写文件:
    写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符’w’或者’wb’表示写文本文件或写二进制文件。

    b. 文件对象的操作方法
    open()方法:Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数。使用open()方法一定要保证关闭文件对象,即调用close()方法。
    open()函数常用形式是接收两个参数:文件名(file)和模式(mode)。
    open(file, mode=‘r’)
    完整的语法格式为:
    open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    参数说明: file:必需,文件路径(相对或者绝对路径)。
    mode:可选,文件打开模式
    buffering:设置缓冲
    encoding:一般使用
    utf8 errors:报错级别
    newline:区分换行符
    closefd:传入的file参数类型
    mode模式有:
    t 文本模式 (默认)。
    x 写模式,新建一个文件,如果该文件已存在则会报错。
    b 二进制模式。

    打开一个文件进行更新(可读可写)。
    U 通用换行模式(不推荐)。
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
    w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
    c. 学习对excel及csv文件进行操作
    (1) python读写csv文件
    import csv
    #读取csv文件内容方法1
    csv_file = csv.reader(open(‘test.csv’,‘r’))
    next(csv_file, None) #skip the headers
    for user in csv_file:
    print(user)
    #读取csv文件内容方法2
    with open(‘test.csv’, ‘r’) as csv_file:
    reader = csv.reader(csv_file)
    next(csv_file, None)
    for user in reader:
    print(user)
    #从字典写入csv文件
    dic = {‘a’:25, ‘b’:26}
    csv_file = open(‘test1.csv’, ‘w’, newline=’’)
    writer = csv.writer(csv_file)
    for key in dic:
    writer.writerow([key, dic[key]])
    csv_file.close() #close CSV file
    csv_file1 = csv.reader(open(‘test1.csv’,‘r’))
    for user in csv_file1:
    print(user)
    (2)python读写excle文件
    需要先用python pip命令安装xlrd,xlwt库
    import xlrd, xlwt #xlwt只能写入xls文件
    #读取xlsx文件内容
    rows =[] #create an empty list to store rows
    book = xlrd.open_workbook(‘testdata.xlsx’) #open the Excel spreadsheet as workbook
    sheet = book.sheet_by_index(0) #get the first sheet
    for user in range(1, sheet.nrows): #iterate 1 to maxrows
    rows. append(list(sheet.row_values(user, 0, sheet.ncols))) #iterate through the sheet and get data from rows in list
    print(rows)
    #写入xls文件
    rows1 = [[‘Name’, ‘Age’],[‘fengju’, ‘26’],[‘wuxia’, ‘25’]]
    book1 = xlwt.Workbook() #create new book1 excle
    sheet1 = book1.add_sheet(‘user’) #create new sheet
    for i in range(0, 3):
    for j in range(0, len(rows1[i])):
    sheet1.write(i, j, rows1[i][j])
    book1.save(‘testdata1.xls’) #sava as testdata1.xls

    六、os模块
    (1)os.sep:取代操作系统特定的路径分隔符
    (2)os.name:指示你正在使用的工作平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。
    (3)os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。
    (4)os.getenv()和os.putenv:分别用来读取和设置环境变量
    (5)os.listdir():返回指定目录下的所有文件和目录名
    (6)os.remove(file):删除一个文件
    (7)os.stat(file):获得文件属性
    (8)os.chmod(file):修改文件权限和时间戳
    (9)os.mkdir(name):创建目录
    (10)os.rmdir(name):删除目录
    (11)os.removedirs(r“c:python”):删除多个目录
    (12)os.system():运行shell命令
    (13)os.exit():终止当前进程
    (14)os.linesep:给出当前平台的行终止符。例如,Windows使用’ ’,Linux使用’ ’而Mac使用’ ’
    (15)os.path.split():返回一个路径的目录名和文件名
    (16)os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录还是文件
    (17)os.path.existe():检验给出的路径是否真的存在
    (18)os.listdir(dirname):列出dirname下的目录和文件
    (19)os.getcwd():获得当前工作目录
    (20)os.curdir:返回当前目录(’.’)
    (21)os.chdir(dirname):改变工作目录到dirname
    (22)os.path.isdir(name):判断name是不是目录,不是目录就返回false
    (23)os.path.isfile(name):判断name这个文件是否存在,不存在返回false
    (24)os.path.exists(name):判断是否存在文件或目录name
    (25)os.path.getsize(name):或得文件大小,如果name是目录返回0L
    (26)os.path.abspath(name):获得绝对路径
    (27)os.path.isabs():判断是否为绝对路径
    (28)os.path.normpath(path):规范path字符串形式
    (29)os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
    (30)os.path.splitext():分离文件名和扩展名
    (31)os.path.join(path,name):连接目录与文件名或目录
    (32)os.path.basename(path):返回文件名
    (33)os.path.dirname(path):返回文件路径

    七、datetime模块
    Python中提供了多个用于对日期和时间进行操作的内置模块:time模块、datetime模块和calendar模块。其中time模块是通过调用C库实现的,所以有些方法在某些平台上可能无法调用,但是其提供的大部分接口与C标准库time.h基本一致。time模块相比,datetime模块提供的接口更直观、易用,功能也更加强大。
    datetime模块提供了处理日期和时间的类,既有简单的方式,又有复杂的方式。它虽然支持日期和时间算法,但其实现的重点是为输出格式化和操作提供高效的属性提取功能。
    1.datetime模块中定义的类
    datetime模块定义了以下几个类:
    datetime.date:表示日期,常用的属性有:year, month和day
    datetime.time:表示时间,常用属性有:hour, minute, second, microsecond
    datetime.datetime:表示日期时间
    datetime.timedelta:表示两个date、time、datetime实例之间的时间间隔,分辨率(最小单位)可达到微秒
    datetime.tzinfo:时区相关信息对象的抽象基类。它们由datetime和time类使用,以提供自定义时间的而调整。
    datetime.timezone:Python 3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量
    需要说明的是:这些类的对象都是不可变的。
    2.datetime模块中定义的常量
    datetime.MINYEAR:datetime.date或datetime.datetime对象所允许的年份的最小值,值为1
    datetime.MAXYEAR:datetime.date或datetime.datetime对象所允许的年份的最大值,只为9999
    3.对象方法和属性
    d.year:年
    d.month:月
    d.day:日
    d.replace(year[, month[, day]]):生成并返回一个新的日期对象,原日期对象不变
    d.timetuple():返回日期对应的time.struct_time对象
    d.toordinal():返回日期是是自 0001-01-01 开始的第多少天
    d.weekday():返回日期是星期几,[0, 6],0表示星期一
    d.isoweekday():返回日期是星期几,[1, 7], 1表示星期一
    d.isocalendar():返回一个元组,格式为:(year, weekday, isoweekday)
    d.isoformat():返回‘YYYY-MM-DD’格式的日期字符串
    d.strftime(format):返回指定格式的日期字符串,与time模块的strftime(format, struct_time)功能相同

    本资料仅为学习总结之用。
    --------------------- 

  • 相关阅读:
    uva 532
    uva 10557
    uva 705
    uva 784
    uva 657
    uva 572
    uva 10562
    usa物价统计
    2019/6/30,道歉书
    名词收集
  • 原文地址:https://www.cnblogs.com/ly570/p/10947678.html
Copyright © 2020-2023  润新知