Datawhale | Python基础第7期 Task4

1. 函数关键字

函数代码块以 def 关键词开头。

2. 函数的定义

语法:

def 函数名(参数列表):
    函数体

Example:

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

空函数

pass占位符,可以让代码执行,但什么都不做。主要用于,todo 场景。

def nop():
    pass

3. 函数参数与作用域

函数的参数

  • 必选参数
  • 默认参数
  • 可变参数
  • 关键字参数
  • 命名关键字参数

必选参数

必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

def my_print(str):
    print(str)
    return

my_print() # 将会 throw TypeError,因为必选参数,必须传,若不传将会抛异常。

默认参数

调用函数时,如果没有传递参数,则会使用默认参数。需要注意,默认参数必须指向不可变对象。若指向为可变对象,将会导致问题。

def my_print(str, age = 18):
    print('name: ', str)
    print('age: ', age)
    return

可变参数

一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。

def my_print(arg1, *args):
    print("输出:")
    print(arg1)
    print(args)
    return

my_print(1, 2, 3, 4) 

输出:
1
(2, 3, 4)

加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

关键字参数

关键字参数允许函数调用时参数的顺序与声明时不一致,Python 解释器能够用参数名匹配参数值。

def my_print(name, age):
    print('姓名:', name)
    print('年龄:', age)

my_print(age=18, name='小明')
def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw) # kw会自动将多个参数,组装成 dict

person('小明', 18, sex='female', school='南山小学') 

命名关键字参数

如果要限制关键字参数的名字,就可以用命名关键字参数。和关键字参数kw不同,命名关键字参数需要一个特殊分隔符后面的参数被视为命名关键字参数。

def person(name, age, *, city, job):
    print(name, age, city, job)

person('小明', 18, city='深圳', job='程序员')

多参数组合

def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)

定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

4. 函数返回值

当 return 无返回值时

返回结果为, None 值。

返回多值

def move(x, y):
    return x, y

返回值是一个tuple

5. file

打开文件方式(读写两种方式)

f = open('./task4_3.py', 'r')
print(f.read())
f.close()

with open('./task4_4.py', 'a') as f:
    f.write('tiancity')

文件对象的操作方法

  • file.open 关闭文件。关闭后文件不能再进行读写操作。
  • file.read([size] 从文件读取指定的字节数,如果未给定或为负则读取所有。
  • file.readline 读取整行,包括 "\n" 字符。
  • ...

更多操作方法参见文档

学习对excel及csv文件进行操作

excel 读操作

import xlrd

# read
excel = xlrd.open_workbook('./user_info.xlsx')
sheet = excel.sheets()[0]
row = sheet.row_values(0)

# 读取excel文件工作表中第1个工作簿的第1行第2列的数据
excel = xlrd.open_workbook('./user_info.xlsx')
sheet = excel.sheets()[0]
cell = sheet.cell(0, 1)
print(cell, type(cell))

cellValue = sheet.cell(0, 1).value
print(cellValue, type(cellValue))

# 循环遍历
excel = xlrd.open_workbook('./user_info.xlsx')
sheet = excel.sheet_by_index(0)
for i in range(sheet.nrows):
    print(sheet.row_values(i))

excel 写操作

import xlwt

# write excel
excel = xlwt.Workbook()
sheet = excel.add_sheet("test1")
sheet.write(0, 1, 'tiancity')
excel.save('excel.xls')

6. os模块

  • os.mkdir 创建目录
  • os.rmdir 删除目录
  • os.rename(old, new) 重命名
  • os.remove 删除文件
  • os.walk 遍历文件
  • ...

7. datetime模块

from datetime import datetime, timedelta,timezone

# 获取当前日期
now = datetime.now()

# 获取制定日期
dt = datetime(2019, 5, 18, 19, 20)
print(dt)

# datetime转换为timestamp
dt.timestamp()

# timestamp 转 datetime
t = 1429417200.0
print(datetime.fromtimestamp(t)) # 本地时区
print(datetime.utcfromtimestamp(t)) # UTC时区

# str 转 datetime
print(datetime.strptime('2019-05-19 10:20:20', '%Y-%m-%d %H:%M:%S'))

# dateime 转 str
now = datetime.now()
print(now.strftime())

# datetime加减
now = datetime.now()
now + timedelta(hours=10)

# 时区转换
now = datetime.utcnow().replace(tzinfo=timezone.utc) # 获取utc时间,并将时区设置为UTC+0:00

# astimezone 将时区换成北京时区
now.astimezone(timedelta(timedelta(hours=8)))

相关资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 1,041评论 0 2
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,743评论 0 8
  • 5Python集合容器 数据结构数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构...
    清清子衿木子水心阅读 1,491评论 0 1
  • 基于《Python语言程序设计基础(第2版)》 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 ...
    柄志阅读 27,344评论 4 44
  • 从小杜那里 知道了唐朝也有粉丝 李白也太白 白玉无瑕 知白者小杜也 小杜也 追随老李寻仙问道 不知喝了多少酒 踏坏...
    雪泥鸿爪001阅读 232评论 0 5