IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 第四章、函数 -> 正文阅读

[Python知识库]第四章、函数

函数

(一)函数是如何定义的

在python中函数是使用关键字def创建的,主要是为了做简单的,重复的事情,解决问题来创建的。如下例:

# this one is like your scripts with argv
def print_two(*args):
    arg1,arg2 = args # 这个函数的参数与第二个函数的参数不一样
    print(f"arg1: {arg1}, arg2: {arg2}")

# ok,that *args is actually pointless,we can just do this
def print_two_again(arg1,arg2):#与第一个参数形式不大一样
    print(f"arg1: {arg1},arg2: {arg2}")

# this just takes one argument
def print_one(arg1):
    print(f"arg1: {arg1}")

#this one takes no arguments
def print_none():
    print("I got nothin.")


print_two("Zed","Shaw")
print_two_again("Zed","Shaw")
print_one("First!")
print_none()
输出:
arg1: Zed, arg2: Shaw
arg1: Zed,arg2: Shaw
arg1: First!
I got nothin.
[Finished in 171ms]

注意函数的定义格式,函数的调用格式。

(二)函数与变量

函数里的变量与脚本里的变量没有关系,即使变量名称一样,最好不使用相同变量。

def cheese_and_crackers(cheese_count,boxes_of_crackers):
    print(f"You have {cheese_count} cheeses!")
    print(f"You have {boxes_of_crackers} boxes of crackers!")
    print("Man that's enough for a party!")
    print("Get a blanket.\n")


print("We can just give the function numbers directly: ")
cheese_and_crackers(20,30)


print("OR,we can use variables from our scripts:")
amount_of_cheese = 10
amount_of_crackers = 50

cheese_and_crackers(amount_of_cheese,amount_of_crackers)


print("We can even do math inside too:")
cheese_and_crackers(10+20,5+6)


print("And we can combine the two,variables and math:")
cheese_and_crackers(amount_of_cheese+100,amount_of_crackers +1000)
输出:
We can just give the function numbers directly: 
You have 20 cheeses!
You have 30 boxes of crackers!
Man that's enough for a party!
Get a blanket.

OR,we can use variables from our scripts:
You have 10 cheeses!
You have 50 boxes of crackers!
Man that's enough for a party!
Get a blanket.

We can even do math inside too:
You have 30 cheeses!
You have 11 boxes of crackers!
Man that's enough for a party!
Get a blanket.

And we can combine the two,variables and math:
You have 110 cheeses!
You have 1050 boxes of crackers!
Man that's enough for a party!
Get a blanket.
[Finished in 131ms]

这个函数展示了给函数赋值的几种方式。

(三)函数与文件

注意函数如何与文件一起工作的

from sys import argv

script,input_file = argv

def print_all(f):
    print(f.read())

def rewind(f):
    f.seek(0)

def print_a_line(line_count,f):
    print(line_count,f.readline())

current_file = open(input_file)

print("First let's print the whole file:\n")

print_all(current_file)

print("Now let's rewind,kind of like a tape.")

rewind(current_file)

print("let's print three lines:")

current_line = 1
print_a_line(current_line,current_file)

current_line = current_line + 1
print_a_line(current_line,current_file)

current_line = current_line + 1
print_a_line(current_line,current_file)
输出为:
First let's print the whole file:

This is stuff Ityped into a file.
It is really cool stuff.
Lots and lots of fun to have in here.

Now let's rewind,kind of like a tape.
let's print three lines:
1 This is stuff Ityped into a file.

2 It is really cool stuff.

3 Lots and lots of fun to have in here.

使用此函数需要给函数输入一个文件作为参数。

(四)函数返回值

举例如下:

def add(a,b):
    print(f"ADDING {a} + {b}")
    return a+b

def subtract(a,b):
    print(f"SUBTRACTING {a} - {b}")
    return a-b

def multiplay(a,b):
    print(f"MULTIPLAYING {a} * {b}")
    return a * b

def divide(a,b):
    print(f"DIVIDING {a} / {b}")
    return a / b

print("Let's do some math with just functions!")


age = add(30,5)
height = subtract(78,4)
weight = multiplay(90,2)
iq = divide(100,2)

print(f"Age:{age},Height:{height},  Weight:{weight},IQ:{iq}")


# A puzzle for the extra credit,type it in anyway.
print("Here is a puzzle.")

what = add(age,subtract(height,multiplay(weight,divide(iq,2))))

print("That becomes: ",what,"Can you do it by hand?")

输出:
Let's do some math with just functions!
ADDING 30 + 5
SUBTRACTING 78 - 4
MULTIPLAYING 90 * 2
DIVIDING 100 / 2
Age:35,Height:74,  Weight:180,IQ:50.0
Here is a puzzle.
DIVIDING 50.0 / 2
MULTIPLAYING 180 * 25.0
SUBTRACTING 74 - 4500.0
ADDING 35 + -4426.0
That becomes:  -4391.0 Can you do it by hand?
[Finished in 136ms]

理解函数的从里到外思维,注意函数的返回值以及调用。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-24 15:14:36  更:2022-02-24 15:14:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:40:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码