以下是搜索内容: 关闭

  • 首页
  • 日志
  • 友情链接
  • 关于我

KoiNL.

愿世间美好 温柔以待

“锦鲤握运,未离我韵”

“愿好运常在”

18 分类
0 标签
16 归档
  • 小站首页
  • 个人日志
  • 友情链接
  • 关于自己
  • 我的工具
站点信息

文章数目: 84 篇

最近动态: 2天前

上线时间: 531天

当前版本: v3.0.0

第二章 函数

分类: Python
标签:

创建日期:2022-04-16 14:40:48

本章节讲了集合的格式与特点与常用操作. 酱, 点击”more”观看更多吧!

1. 函数的定义与调用

  1. 函数分为定义, 与调用两步.
点击显/隐函数的定义与调用
1
2
3
4
5
6
7
8
9
10
def isNum(s):    # 函数的定义: 判断是否数字的函数
s = eval(s) # 将函数参数可处理化
try:
if type(s) == int or type(s) == float: # 如果函数类型是整数或浮点数
return True # 返回是
else: # 反之则反
return False
except: # 若输入非法字符导致异常
return False
print(isNum(input())) # 函数的调用

2. 函数的 lambda 与参数传递

  1. 当函数很简单时, 可以使用 lambda 函数来达到简化行数的目的.
    也借此, 来阐述关于函数的五种参数传递 (无参, 有参, 默认参数, 显示为元组以及显示为字典的参数) .
点击显/隐代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 函数定义
# def fa1():
# return print("你好") # 等同于↓
fa1 = lambda: print("你好") # 无参
fa2 = lambda a, str: print(f"你好{a}{str}") # 有参 a 与 str, 且参数为位置参数
fa3 = lambda str, a="哈": print(f"你好{a}{str}") # a 有默认值, 默认参数应在位置参数后
user_info1 = lambda *args: print(args) # 不定长, 包裹位置参数, 显示结果为元组
user_info2 = lambda **args: print(args) # 不定长, 包裹关键词参数, 显示结果为字典
# 函数调用
fa1() # 你好
fa2('啊', '锦鲤未离') # 你好啊锦鲤未离
fa3('锦鲤未离') # 你好哈锦鲤未离
user_info1('锦鲤未离', 19, '♂') # ('锦鲤未离', 19, '♂')
user_info2(Name="Koi_NL", Age=19, Sex='男') # {'Name': 'Koi_NL', 'Age': 19, 'Sex': '男'}

3. 递归

函数内部自己调用自己
阶乘

1
2
3
4
5
def fa(n):
if n == 0:
return 1
else: return n * fa(n - 1)
print(fa(8))

累乘积

1
2
3
4
5
# 将 print(fa(5) 替换为下四行
z = 0
for i in (1,2,3,4,5):
z = z + sum(i)
print(z)

4. datetime 库

时间处理

点击显/隐代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from datetime import *
print(datetime.now()) # 现在时间
print(datetime.utcnow()) # 世界标准时间
print(datetime(2022, 9, 30)) # 创建时间
# 常用属性
print(datetime.now().year) # 现在时间 的年份
print(datetime.now().month) # 现在时间 的月份
print(datetime.now().day) # 现在时间 的日份
# ...... 还有 hour, minute, second, microsecond
# 三种时间格式化方法
print(datetime.now().isoformat()) # 2022-04-16T11:42:42.839481
print(datetime.now().isoweekday()) # 今日星期
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) # 2022-04-16 11:42:42
print(datetime.now().strftime("%A~%a, %D~%d. %B %Y %I:%M%p"))
# Saturday~Sat, 04/16/22~16. April 2022 11:42AM
print("今天是 {0:%Y} 年".format(datetime.now())) # 今天是 2022 年

5. 综合案例

  1. 在第一章里面, 练习了田字格的输出, 现请输出一个更大的田字格.
点击显/隐代码
1
2
3
4
5
6
7
8
9
10
11
12
def tian_zi_ge(n):  # n 注明阶数
jia, heng, shu, kong = ' + ', ' — ', ' | ', ' ' # 田字格用四种元素组成, 现展现
jia_and_heng4, shu_and_kong4 = jia + heng * 4, shu + kong * 4 # 将极其相似的归纳
for i in range(n * 2 + 1): # 由二阶需要绕 5 圈, 三阶 7 圈, 四阶 9圈得绕的圈数应为 n * 2 + 1
if i % 2 == 0: # 全都是偶数: i == 0 or i == 2 or i == 4 or i == 6 or i == 8...
print(f"{jia_and_heng4 * 4}{jia}")
else: # 第 2, 4 次输出同样的 转 4 圈的 "| | |" .
for i in range(4):
print(f"{shu_and_kong4 * 4}{shu}")


print(tian_zi_ge(4))
  1. 实现 multi() 函数, 参数个数不限, 返回所有参数的乘积.
点击显/隐代码
1
2
3
4
5
6
7
8
9
10
11
12
def multi():
ll, n = [], 0 # 空列表接收数据, 当然也可以字符串
i = input("请输入数字: ")
while i != "": # 当不为回车时
ll += i # 尾加法
n += 1 # 成功! 计数 +1
i = input("请输入数字: ")
pron = 1
for i in range(n):
pron *= eval(ll[i])
return pron
print(multi())
  1. 实现 isPrime() 函数, 参数为整数, 要有异常处理. 如果整数是质数, 返回 True, 否则返回 False.
点击显/隐代码
1
2
3
4
5
6
7
8
9
10
def is_Prime():
try:
n = eval(input("输数"))
for i in range(2, n // 2 + 1): # 从 2 循环到该数的一半数字
if n % i == 0: # 如果有相除为 0 的, 该数不是质数
return False
return True # 反之则反
except:
print("重输")
print(is_Prime())
点击显/隐代码
1

点击显/隐代码
1

浏览量

评论区

欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~

目录

  1. 1. 1. 函数的定义与调用
  2. 2. 2. 函数的 lambda 与参数传递
  3. 3. 3. 递归
  4. 4. 4. datetime 库
  5. 5. 5. 综合案例

上一篇: 第三章 组合数据类型

下一篇 第一章 线性表

公告栏

《 

 》

Hello~近期剽窃本站内容频发,本站唯一指定网站:https://koinl.github.io。请认准。点击点击此处选择进入。
回到顶部
查看评论

Power By Hexo.

Theme:koinl.

信息来源于锦鲤未离