当前位置: 首页 > news >正文

复习python从入门到实践——函数function

复习python从入门到实践——函数function

函数是特别难的,大家一定要好好学、好好复习、反复巩固。函数没学好,会为后面造成很大困扰。
教科书中函数举例会稍微有点复杂。在此章复习中,我将整理出容易疏漏和混淆的知识点,并用最简单的代码辅助大家理解。
本章涉及:定义函数、实参与形参、return返回值、传递列表与切片、将函数导入模块。

文章目录

  • 复习python从入门到实践——函数function
    • 1. 定义 def函数
      • Syntax:
    • 2.实参与形参:
      • 传递实参的方法:
      • 可选实参:
      • 通过*传递任意数量实参
      • 涉及字典 **可变关键字参数
    • 3.return返回
      • Syntax:
      • Principle:
      • 注意:
    • 4. 传递列表
      • [:]切片含义:
    • 5.将函数导入模块

1. 定义 def函数

Syntax:

def 函数():函数的具体表现(函数体)
函数() #调用

区分函数和变量

  1. 函数 add_numbers():
    接受输入的参数(a,b),并且要有返回值return。后面会介绍。
def add_numbers(a, b):# 定义一个函数return a + bresult = add_numbers(3, 5)#使用函数
print("结果:", result)

2.变量x,y
依靠=储存各种数据。

# 定义两个变量
x = 10
y = 20sum_of_variables = x + y # 使用变量
print("变量之和:", sum_of_variables)

2.实参与形参:

形参类似于中文里概括性质的类别,比如“同学”
实参是具体的例子,比如“小明”属于”同学“,”小明“是实参。

def great_user(username):"""显示问候语:""" #文本注释,三引号,描述函数做什么。print(f"Hello {username.title()}!") #函数的工作
great_user('Ashley') 

username 形参
Ashley 实参

传递实参的方法:

(1)对应位置

def animal_lists(category,name):print(f"My {category}'s name is {name.title()}.")
animal_lists('pig','feifei')

(2)关键词,用’='连接

def animal_lists(category,name):print(f"My {category}'s name is {name.title()}.")
animal_lists(name='feifei',category='pig')

(3)最后一项是默认值

def animal_lists(name, category='dog',):#把默认值放到最后。print(f"My {category}'s name is {name.title()}.")
animal_lists(name='feifei')

可选实参:

把可选可不选的参数放到最后一个
middle_name=’ ’

def formatted_name(first_name,last_name,middle_name=' '):if middle_name:formatted_name = f'{first_name} {middle_name} {last_name}'else:formatted_name = f'{first_name} {last_name}'return formatted_name.title()
students = formatted_name('Haifei',"Wang")
print(students)
students = formatted_name('Haifei','Wang','Pig')#最后一个是中间名
print(students)

通过*传递任意数量实参

def feifei_behaviors(*behavior):#通过加星号调用多个实参print(f'飞飞正在:{behavior}')
feifei_behaviors('拉粑粑')
feifei_behaviors('吃粑粑','吃屎','被茵茵看着拉屎')

涉及字典 **可变关键字参数

def build_profile(first,last,**user_info):#**可变关键字参数,除了First和last"""创建一个字典,其中包含我们知道的有关用户的一切"""profile = {}profile['first_name'] = firstprofile['last_name'] = lastfor key,value in user_info.items():profile[key] = valuereturn profile
user_profile = build_profile('albert','einstein',location='princeton',field='physics')
print(user_profile)

3.return返回

Syntax:

def function_name():具体的statementreturn statement中的函数

Principle:

== a. The statements after the return() statement are not executed. 在return()语句之后的语句不会被执行。
b. return() statement can not be used outside the function. return()语句不能在函数外部使用。
c. If the return() statement is without any expression, then the NONE value is returned. 如果return()语句没有任何表达式,则返回NONE值。==

举例:

def formatted_name(first_name,last_name):formatted_name = first_name+' '+ last_namereturn formatted_name()
students = formatted_name('Haifei',"Wang")
print(students)

结果: Haifei Wang

如果没有return语句

def formatted_name(first_name,last_name):formatted_name = first_name+' '+ last_name
students = formatted_name('Haifei',"Wang")
print(students)

结果是None

注意:

调用你定义的函数,而不是变量

def city_country(city, country):full_name = f'{city},{country}'return full_namewhile True:print("Please inter the city and country:")city = input('city:')country = input('country:')new_name = city_country(city, country)#调用定义变量print(new_name)	

4. 传递列表

普通方法:
def+循环+发送列表+调用列表

def greating_lists(names):#建立函数 # 问候 '''给列表中的用户打招呼'''for name in names:print(f'Hello! {name.title()}.')
usernames=['feifei','ashley','tony']# 发送列表
greating_lists(usernames)#调用列表-实参

[:]切片含义:

基本:
[start:stop:step]
用数学集合可以表示为:[ )
举例:
[1:4] 从索引1(包含)到索引4(不包含)也就是索引1 2 3 这几个元素。

重要的容易忽略:
表示列表序列
创建副本

original_list = [10, 20, 30, 40, 50]# 使用切片创建副本
copied_list = original_list[:]# 修改副本
copied_list[0] = 100print("Original List:", original_list)
print("Copied List:", copied_list)

原始列表 original_list 并没有被修改。这是因为切片创建了一个新的列表对象,而不是直接引用原始列表。

5.将函数导入模块

Syntax:
from 文件 import 要导入的东西
import 原来的东西名字 as 你想改的名字
from 文件 import *(所有函数)

相关文章:

复习python从入门到实践——函数function

复习python从入门到实践——函数function 函数是特别难的,大家一定要好好学、好好复习、反复巩固。函数没学好,会为后面造成很大困扰。 教科书中函数举例会稍微有点复杂。在此章复习中,我将整理出容易疏漏和混淆的知识点,并用最简…...

【Internal Server Error】pycharm解决关闭flask端口依然占用问题

Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. 起因: 我们在运行flask后,断开服务依然保持运行&#xff0…...

torch.nn.functional.interpolate与torchvision.transforms.Resize方法对张量图像Resize应用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、非张量数据使用torch方法resize(transforms.Resize)二、张量数据使用torch方法resize(torch.nn.functional.interpolate) 前言 要使用 PyTorch 对张量进行…...

【Spring】Spring的事务管理

前言: package com.aqiuo.service.impl;import com.aqiuo.dao.AccountMapper; import com.aqiuo.pojo.Account; import com.aqiuo.service.AccountService; import org.springframework.jdbc.core.JdbcTemplate;import java.sql.Connection; import java.sql.SQLEx…...

配置cendos 安装docker 配置阿里云国内加速

由于我安装的cendos是镜像版。已经被配置好了。所以只需要更新相关配置信息即可。 输入 yum update自动更新所有配置 更新完成后输入 yum list docker-ce --showduplicates | sort -r 自动查询所有可用的docker版本 输入 yum install docker-ce docker-ce-cli container…...

【深度学习:Domain Adversarial Neural Networks (DANN) 】领域对抗神经网络简介

【深度学习:Domain Adversarial Neural Networks】领域对抗神经网络简介 前言领域对抗神经网络DANN 模型架构DANN 训练流程DANN示例 GPT示例 前言 领域适应(DA)指的是当不同数据集的输入分布发生变化(这种变化通常被称为共变量变…...

STM32 ESP8266 物联网智能温室大棚 (附源码 PCB 原理图 设计文档)

资料下载: https://download.csdn.net/download/vvoennvv/88680924 一、概述 本系统以STM32F103C8T6单片机为主控芯片,采用相关传感器构建系统硬件电路。其中使用DHT11温湿度传感器对温度和湿度的采集,MQ-7一氧化碳传感器检测CO浓度,GP2Y101…...

【DevOps-08-1】Harbor镜像仓库介绍和安装

一、简要描述 Harbor介绍Harbor安装 下载离线安装包把下载的离线安装包上传到服务器,并且解压修改Harbor配置文件启动Harbor登录Harbor管理后台Harbor管理后台首页二、Harbor介绍 前面在部署项目时,我们主要采用Jenkins推送jar包到指定服务器,再通过脚本命令让目标服务器对当…...

第八节 vue3新特性

系列文章目录 目录 系列文章目录 前言 操作方法 总结 前言 vue3与vue2的区别及特性。 具体信息 页面不用跟标签包裹cs...

Web前端-jQuery

文章目录 jQuery1.1 jQuery 介绍1.1.1 JavaScript 库1.1.2 jQuery的概念1.1.3 jQuery的优点 1.2 jQuery 的基本使用1.2.1 jQuery 的下载1.2.2 jQuery快速入门1.2.3 jQuery入口函数1.2.4 jQuery中的顶级对象$1.2.5 jQuery 对象和 DOM 对象1.2.6. jQuery 对象和 DOM 对象转换 1.3…...

Leetcod面试经典150题刷题记录 —— 二叉搜索树篇

Leetcod面试经典150题刷题记录-系列Leetcod面试经典150题刷题记录——数组 / 字符串篇Leetcod面试经典150题刷题记录 —— 双指针篇Leetcod面试经典150题刷题记录 —— 矩阵篇Leetcod面试经典150题刷题记录 —— 滑动窗口篇Leetcod面试经典150题刷题记录 —— 哈希表篇Leetcod面…...

【大数据进阶第三阶段之ClickHouse学习笔记】ClickHouse的简介和使用

1、ClickHouse简介 ClickHouse是一种列式数据库管理系统(DBMS),专门用于高性能数据分析和数据仓库应用。它是一个开源的数据库系统,最初由俄罗斯搜索引擎公司Yandex开发,用于满足大规模数据分析和报告的需求。 开源地址…...

Linux下Redis6下载、安装和配置教程-2024年1月5日

Linux下Redis6下载、安装和配置教程-2024年1月5日 一、下载二、安装三、启动四、设置开机自启五、Redis的客户端1.Redis命令行客户端2.windows上的图形化桌面客户端 一、下载 1.Redis的官方下载:https://redis.io/download/ 2.网盘下载: 链接&#xff…...

Java后端开发——Ajax、jQuery和JSON

Java后端开发——Ajax、jQuery和JSON 概述 Ajax全称是Asynchronous Javascript and XML,即异步的JavaScript和 XML。Ajax是一种Web应用技术,该技术是在JavaScript、DOM、服务器配合下,实现浏览器向服务器发送异步请求。 Ajax异步请求方式不…...

ssm基于Vue的戏剧推广网站论文

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统戏剧推广信息管理难度大,容错率低&#xff0c…...

安卓adb

目录 如何开启 ADB 注意事项 如何使用 ADB ADB 能干什么 ADB(Android Debug Bridge)是一个多功能命令工具,它可以允许你与 Android 设备进行通信。它提供了多种设备权限,包括安装和调试应用,以及访问设备上未通过…...

【数位dp】【动态规划】C++算法:233.数字 1 的个数

作者推荐 【动态规划】C算法312 戳气球 本文涉及的基础知识点 动态规划 数位dp LeetCode:233数字 1 的个数 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例 1: 输入:n 13 输出:6 示例 2&#xff…...

docker (portainer 安装nginx)

汉化版步骤可以参考:写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/135258056 一、创建容器 二、配置端口,以及容器卷挂载 挂载目录配置:(下方截图的目录如下,docker 改为 mydocker,用docker作为根…...

10个linux文件管理命令

1. ls – 列出目录内容 ls可能是每个Linux用户在其终端中键入的第一个命令。它允许您列出您想要的目录的内容(默认情况下是当前目录),包括文件和其他嵌套目录。 它有很多选择,所以最好使用 --help 来获得一些帮助。此标志返回所…...

实战:使用docker容器化服务与文件挂载-2

接着上文,演示Elasticsearch 和 Kibana 的安装,并讲解文件挂载 Elasticsearch of Docker (Kibana) 1、Elasticsearch 安装 ElasticSearch 使用 Docker 安装:https://www.yuque.com/zhangshuaiyin/guli-mall/dwrp5b 1.…...

Llama-3.2V-11B-cot快速部署:单命令启动+自动加载双卡4090

Llama-3.2V-11B-cot快速部署:单命令启动自动加载双卡4090 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B-cot多模态大模型开发的高性能视觉推理工具,专为双卡4090环境深度优化。这个工具解决了传统大模型部署中的几个关键痛点:…...

学术PDF处理神器:OpenClaw+GLM-4.7-Flash自动提取关键结论

学术PDF处理神器:OpenClawGLM-4.7-Flash自动提取关键结论 1. 为什么需要自动化文献处理? 作为一名经常需要阅读大量学术文献的研究者,我发现自己花费在整理文献上的时间甚至超过了实际阅读时间。每次下载几十篇PDF后,手动提取目…...

OpenClaw异常处理:配置nanobot自动重试失败任务

OpenClaw异常处理:配置nanobot自动重试失败任务 1. 为什么需要自动重试机制 上周我让OpenClaw执行一个简单的夜间数据收集任务时,遇到了一个令人头疼的问题。凌晨3点,网络突然波动导致任务中断,而当我早上打开电脑时&#xff0c…...

从GUI到Tcl命令:Vivado Report Timing Summary配置选项的完整对照手册(附常用命令模板)

Vivado时序报告GUI与Tcl命令深度对照手册:打造自动化分析工作流 在FPGA设计流程中,时序分析是确保设计满足性能要求的关键环节。Vivado IDE提供了直观的GUI界面用于配置时序报告,但对于追求高效自动化的工程师而言,掌握底层Tcl命令…...

零基础玩转CTFShow Web1-7:手把手教你用Burp Suite和蚁剑拿flag

零基础玩转CTFShow Web1-7:从工具配置到实战渗透全指南 第一次接触CTF比赛时,看着其他选手在终端里敲出神秘代码就能拿到flag,总觉得这是黑客才能掌握的"黑魔法"。直到自己动手尝试才发现,只要掌握正确的工具和方法&…...

Citra 3DS模拟器:如何在PC端重温任天堂经典游戏的终极指南

Citra 3DS模拟器:如何在PC端重温任天堂经典游戏的终极指南 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra 想要在Windows、Linux或macOS系统上体验《精灵宝可梦》、《塞尔达传说》等经典3DS独占游戏吗…...

Linux服务器运维:5个最容易被忽略的故障排查技巧(附实战命令)

Linux服务器运维:5个最容易被忽略的故障排查技巧(附实战命令) 在Linux服务器运维的日常工作中,有些故障排查点往往被工程师们忽视,直到问题爆发才追悔莫及。本文将揭示五个最容易被忽略但至关重要的排查技巧&#xff…...

OpenClaw跨平台实战:Windows到Mac的Qwen3-32B配置迁移

OpenClaw跨平台实战:Windows到Mac的Qwen3-32B配置迁移 1. 为什么需要跨平台配置迁移? 去年冬天,我在Windows工作站上搭建了一套基于Qwen3-32B的OpenClaw自动化系统,用于处理日常的文档整理和数据分析任务。当公司配发新款MacBoo…...

基于springboot图书综合服务平台设计与开发(源码+精品论文+答辩PPT等资料)

博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...

计算机毕业设计:基于Django与LSTM的大众点评评价预测系统 Django框架 LSTM Hadoop Spark Hive 可视化 大数据 食品 食物(建议收藏)✅

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,…...