Python基础6

【Python 实战基础】什么是PyQt6? 简单介绍一下PyQt6 阅读详情

函数关键字

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

函数的定义

我们以自定义一个求绝对值的my_abs函数为例:

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
Python 定义函数使用 def 关键字,一般格式如下:

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

函数参数与作用域

以下是调用函数时可使用的正式参数类型:
必备参数
关键字参数
默认参数
不定长参数

  1. 位置传递实例:
    def fun(a,b,c)
      return a+b+c
    print(f(1,2,3))
  1. 关键字传递

关键字(keyword)传递是根据每个参数的名字传递参数。关键字并不用遵守位置的对应关系。

def fun(a,b,c)
  return a+b+c
print(f(1,c=3,b=2))
  1. 参数默认值

在定义函数的时候,使用形如c=10的方式,可以给参数赋予默认值(default)。如果该参数最终没有被传递值,将使用该默认值。

def f(a,b,c=10):
  return a+b+c

print(f(3,2))
print(f(3,2,1)) 

在第一次调用函数f时, 我们并没有足够的值,c没有被赋值,c将使用默认值10.第二次调用函数的时候,c被赋值为1,不再使用默认值。

  1. 包裹传递

在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会非常有用。

下面是包裹位置传递的例子:

 def func(*name):
  print type(name)
  print name
 

func(1,4,6)
func(5,6,7,1,2,3)

两次调用,尽管参数个数不同,都基于同一个func定义。在func的参数表中,所有的参数被name收集,根据位置合并成一个元组(tuple),这就是包裹位置传递。

为了提醒Python参数,name是包裹位置传递所用的元组名,在定义func时,在name前加*号。

下面是包裹关键字传递的例子:

def func(**dict):
  print type(dict)
  print dict
 

  func((1,9))
  func("a":2,"b":1,"c":11) 

与上面一个例子类似,dict是一个字典,收集所有的关键字,传递给函数func。为了提醒Python,参数dict是包裹关键字传递所用的字典,在dict前加**。

包裹传递的关键在于定义函数时,在相应元组或字典前加*或**。

  1. 解包裹

和*,也可以在调用的时候使用,即解包裹(unpacking), 下面为例:

def func(a,b,c):
  print a,b,c
 

args = (1,3,4)
func(*args)

dict = {'a':1,'b':2,'c':3}
func(**dict)

在这个例子中,所谓的解包裹,就是在传递tuple时,让tuple的每一个元素对应一个位置参数。在调用func时使用*,是为了提醒Python:我想要把args拆成分散的三个元素,分别传递给a,b,c。

Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。

变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是:

L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域
以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。

x = int(2.9)  # 内建作用域
 
g_count = 0  # 全局作用域
def outer():
    o_count = 1  # 闭包函数外的函数中
    def inner():
        i_count = 2  # 局部作用域

Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这些语句内定义的变量,外部也可以访问

函数返回值

return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。

# 可写函数说明
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print ("函数内 : ", total)
   return total

习题

  1. 实现random.sample方法

dlist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slice = random.sample(dlist, 5)  # 从list中随机获取5个元素,作为一个片断返回
print (slice)
print (dlist)  # 原有序列并没有改变

[7, 5, 6, 9, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
import random
def get_random_sample(data_list, k):
    temp = []
    while True:
        x = random.randint(0,len(data_list))
        temp.append(data_list[x-1])
        if len(set(temp)) >= k:
            break
    return list(set(temp))

print(get_random_sample(dlist, 5))


  1. 实现Max方法

dlist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print (max(dlist))

10
def get_max(x):
    "查找参数x的最大值"
    Len = len(x)
    max_value = x[0]
    for i in range(1,Len):
        if x[i]>= max_value:
            max_value = x[i]
    return max_value


  1. 实现判断两个字符串是否相等的方法
1、比较字符串是否相同:

==:使用==来比较两个字符串内的value值是否相同

is:比较两个字符串的id值。

2、字符串的长度比较

len():显示字符串的长度,返回数字整型。可以进行长度的比较。

3、使用比较运算符

>、<、> = 、< =、比较的规则为:从第一个字符开始比较,排序在前边的字母为小,当一个字符串全部字符和另一个字符串的前部分字符相同时,长度长的字符串为大。

a = '256'
b = '256'
print(id(a))
print(id(b))
print(a == b)

2206964433168
2206964433168
True
def compare_equal(a, b):
    if not len(a) == len(b):
        return False
    for i in range(len(a)):
        if not a[i] == b[i]:
            return False
    return True

参考文献

https://www.cnblogs.com/nkwy2012/p/6023719.html
https://www.cnblogs.com/python-dd/p/9368078.html

思科路由器IPv6各种路由协议配置 思科路由器IPv6路由协议配置:1、静态路由配置;2、默认路由配置;3、RIPng路由配置;4、OSPFv3路由配置。 阅读详情

相关推荐

Cadence IC618/Spectre231安装避坑指南:详解环境变量配置与License管理那些事儿

本文深入解析Cadence IC618/Spectre231安装过程中的环境变量配置与License管理难题,提供从变量冲突解决到高效License管理的实用方案。针对常见的64位标识冲突、路径污染及License服务器连接问题,给出具体诊断步骤和优化建议,帮助用户构建稳定可靠的EDA环境。

weixin_33737134的博客 619

python基础-函数

一、函数参数使用 (一)return的用法 def Fun1(x, y): return x + y # ②这句话没有执行,上面的return已经结束函数执行 print("看看执行了没有") result = Fun1(5,6) # ①返回一个数据,给函数调用的地方 print(result) # ③如果return后没有数据,则默认返回,返回值为none (二)位置参...

loco_python 385

Nacos漏洞利用工具V3.0.5实战:从认证绕开到内存马植入的全流程指南

本文详细解析了Nacos漏洞利用工具V3.0.5在实战中的应用,从认证绕开到内存马植入的全流程。文章深入探讨了如何利用Nacos的历史漏洞,如默认口令、认证逻辑绕过、Derby SQL注入及Jraft反序列化,实现权限提升与持久化控制,并提供了防御视角与加固建议,旨在帮助安全人员理解攻击链以加强防护。

h6j7k8l9p0的博客 484

基础教程——python函数

定义一个函数:    1.使用def关键字, def + 函数名 +(参数列表)     2.函数的内容由‘ :’开始,由缩进结束 注意:由于python的变量没有类型,则不像c和c++那么样有参数类型    虽然,没有参数类型,但是在变量的运算过程中,如果变量所引用的值错误依旧会报错 一般格式: def 函数名(参数列表): 函数体 ...

weixin_33672400的博客 184

SRAM compiler选项中 Soft Error Repair (SER)

引起的瞬时故障,可能会影响 SRAM 中存储的数据。SER 功能通过某种机制检测并修复这些错误,从而提高存储器的可靠性。在 SRAM 编译器中,

hzmscut的博客 1158

CocosCreator 面试题(十七)Cocos creator 固定宽度与固定高度的底层原理是什么?Cocos creator是如何做适配的?

通过固定宽度或固定高度的适配方式,可以使游戏在不同屏幕尺寸上保持一定的一致性,确保游戏中的元素的大小和位置相对稳定。具体选择哪种适配方式取决于你的游戏需求和设计考虑。在 Cocos Creator 中,你可以通过设置「设计分辨率」和使用相对坐标和布局方式来实现固定宽度或固定高度的适配。总之,Cocos Creator 提供了多种适配方式和工具,帮助你在不同屏幕尺寸上保持游戏画面的一致性。在 Cocos Creator 中,固定宽度和固定高度是两种常见的适配方式,用于在不同屏幕尺寸上保持游戏画面的一致性。

w风雨无阻w的专栏 1688

FIsh论坛《零基础入门学习Python》| 第018讲 课后测试题及答案

FIsh论坛《零基础入门学习Python》| 第018讲:函数:灵活即强大 | 课后测试题及答案 测试题: 0. 请问以下哪个是形参哪个是实参? def MyFun(x): return x ** 3 y = 3 print(MyFun(y)) 输出结果: 27 形参:x,实参:y=3 形参指的是函数创建和定义过程中小括号里的参数,而实参指的是函数在调用过程中传递进去的参数。 1.函数写注释有什么不同? 给函数写文档是为了让别人可以更好的理解你的函数,所以这是一个好习惯: def MyFirs

the_beginner的博客 331

华南理工大学电子与信息学院23年预推免复试面试经验贴

华南理工大学电子与信息学院23年预推免复试面试经验贴

Scut_Ty的博客 3299

python基础--函数定义、调用

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。 我们以自定义一个求绝对值的my_abs函数为例: # 定义函数 def my_abs(x): if x >= 0: return x else: return -x # 函数调用

春天的波菜 224

YOLOv12改进前必看 - YAML模型配置文件详细解读(再也不用担心通道数不匹配) 附网络结构图

YOLOv12的模型配置文件在中,里面包含yolov12的以及的不同大小的模型,本文将详细介绍一下YOLOv12模型文件中各参数的含义。

Limiiiing的博客 3278

基于深度学习的文字识别与检测算法研究

基于深度学习的文字识别与检测算法研究 1. 背景介绍 1.1 文字识别与检测的重要性 在当今信息时代,文字作为人类交流和传递信息的主要载体,无处不在。从日常生活中的路牌、广告牌,到办公场所的文件、合同,再到互联网上的网页、图片等

AI天才研究院 1044

python函数中的位置参数、默认参数、关键字参数、可变参数、解包裹参数浅析

python函数中的位置参数、默认参数、关键字参数、可变参数一、位置参数二、关键字参数三、默认参数四、可变参数五、解包裹参数六、位置参数、默认参数、可变参数的混合使用 一、位置参数 调用函数时根据函数定义的参数位置来传递参数。 def printPerson(name, sexa): sex = {1: '先生', 2: '女士'} print('%s %s' % (name, s...

shiGXW的博客 874

YOLOv11改进 | 添加注意力篇 | 结合2024最新Mamba注意力机制MLLA助力yolov11有效涨点含二次创新C2PSA(全网独家首发改进)

本文给大家带来的改进机制是结合号称超越Transformer架构的Mamba架构的最新注意力机制MLLA,本文将其和我们YOLOv11进行结合,的原理是通过将Mamba模型的一些核心设计融入线性注意力机制,从而提升模型的性能。具体来说,MLLA主要整合了Mamba中的“忘记门”(forget gate)和模块设计(block design)这两个关键因素,同时MLLA通过使用位置编码(RoPE)来替代忘记门,从而在保持并行计算和快速推理速度的同时,提供必要的位置信息。

Snu77的博客 3873

chatgpt赋能Python-python3_6_6怎么用

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

「 虚幻私塾」 302

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python 2.6.6的坑

Python 2.6.6是大多数操作系统自带的默认Python版本,下面总结一下: 1、str和unicode 首先明确,Python2.x里的str实际上是bytearray,另外str->unicode是解码(decode),unicode->str是编码(encode), 所以理论上你对unicode类型只能调用encode方法,而对str类型只能调用decode方法,但是不管是uni

邦涛的博客 1966

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python3.6中文版下载-Python3.6.6官方版

Python3.6.6官方版是一种功能强大,轻量便捷的计算机程序设计语言,它也是一种功能强大而完善的通用型语言,成熟且稳定。Python3.6.6官方版具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。软件特色1、Web编程:应用的开发语言,支持最新的XML技术。2、多媒体应用:Python3.6.6官方版的PyOpenGL模块封装了"Ope...

weixin_37988176的博客 2810

mac自带python_将Mac自带的Python2.6升级到Python3.6

1. 前言Mac系统自带python2.7,本文目的是将自带的python升级到3.6版本。网上有本多的做法是让python2.7和python3.X两个版本共存,博主并不知道,是两版本共存好,还是直接升级好,所以读者要慎重选择方法。2. 关闭Rootless机制由于Mac下的python2.7 默认是安装在/System目录下的。但是~~~Mac有个Rootless机制,默认不允许直接在/Sys...

weixin_39929683的博客 2602

python官方文档3.6.6-Python Release Python 3.6.6 | Python.org

Python 3.6.6Release Date: June 27, 2018Python 3.6.6 was the sixth maintenance release of Python 3.6.NoteThere are now newer security-fix releases of Python 3.6 that supersede 3.6.6 and Python 3.8 is n...

weixin_39985842的博客 246

python3.6.6怎么运行_python3.6.6怎么运行

用浏览器打开官方网站2选择Downloads选项,根据操作系统选择适合的版本。(这里我以Windows32位系统版本为例),注:3.5以上版本不支持WindowXP及之前的windows的系统。3下载完成后打开安装包并执行,运行出该界面。这里是安装到C盘上(默认安装)此处为自定义安装选择第一项是系统用户下所有用户可启动,Add Python 3.6 to PATH 是将安装路径添加到PATH环境变...

weixin_33132819的博客 1177

Centos6.9下安装python3.6

Centos6.9下安装python3.6 在正式安装python之前先安装好所依赖的包,这一步一定要做,否则下面编译时会报错 注:gcc用于编译,readline-devel包用于解决退格键与方向键出现乱码的问题 yum install gcc yum install zlib-devel yum install readline-devel 准备python安装包,可以使用wget,不过我使用时挺慢的,这里直接提供安装包下载路径 python3.6 将下载好的安装包放到自己服务器上,解压,并

weixin_43267006的博客 454

Centos 6.10 python2.6.6升级到python2.7.11

Centos6.10 python2.6.6升级到python2.7.11背景下载python2.7.11 背景 由于一些框架和组件已经不支持python2.6系列版本。例如Django 1.8开始已经不支持python2.6.x。 下载python2.7.11 查看现有版本 [root@devops1 ~]# python -V Python 2.6.6 下载压缩包 [root@devops1...

于大宝子和小野丫头 1208

python3.6的基础知识

1.python基础知识 语法: 1.没有分号 2.严格按照缩进的语言 #coding:utf-8 print(‘hhh’) 注释: 单行注释 #单行 多行注释 “”&amp;amp;amp;amp;quot; 多行注释 “”&amp;amp;amp;amp;quot; 2.python3.6与python2的不同 1)字符类型不同 python3.6的字符类型有:int、float、str、boolean str:

weixin_43328213的博客 1075

centos6安装python_在centos6.6上安装python

centos系统自带的python版本是2.6,为了体验最新的版本2.7.8(python3系列除外),所以得升级原有的python版本。首先是下载python2.7.8wgethttps://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz解压缩:tar zxvfPython-2.7.8.tgz进入python解压缩后的文件夹:cd Pytho...

weixin_39640265的博客 334

【Redhat6.5】将Python2.6.6升级为2.7.6

前言 由于Redhat6.5 自带python版本为2.6.6,在离线安装Nodejs要求使用的是为2.7.x版本,记录下手动升级过程。 查看当前Python版本 [root@host45 ~]# python -V Python 2.6.6 下载Python-2.7.6 下载地址:https://www.python.org/ftp/python/2.7.6/ 选择文件:Python-2.7....

光阴迷客的知识库 3320

python升级教程_CentOS 6升级Python2.6.6升级至Python2.7.6教程

有时候有些程序需要在Python 2.7才能运行,而CentOS6.x系统默认的是Python 2.6,遇到这个情况我们可以选择升级python2.6.6升级到Python2.7.6,或直接安装CentOS7.x版本,因为7.x版本系统默认的是Python 2.7。1、首先使用“python -V”命令查看python版本,蜗牛测试主机显示的是2.6.6版,于是下面就着手将python2.6.6升...

weixin_36272622的博客 290

Ubuntu中Python2.7.12升级到Python3.6.6

目录 1.Ubuntu的版本如下 2.查询自带的默认Python版本 3.升级到3.6.6 3.1 下载源tar包并解压 3.2 安装 3.3 关于yum关于apt 3.4 软连接 3.5 多版本 4.Python官方在线的版本 参考文献 1.Ubuntu的版本如下 2.查询自带的默认Python版本 使用python -V命令查询当前python的版本,注意V是大...

凉茶冰 2159

python3.6手机版_QPy3.6 - Python3.6 for QPython

QPy3.6 - Python3.6 for QPython 介绍QPy3.6 - Python3.6 for QPythonNOTE: New version with 3.6.4 is in developing, please wait some days.This is the QPython's plugin which let your QPython supports Python3...

weixin_39632728的博客 1126
上一篇: Leetcode 17. 电话号码的字母组合 46. 全排列
下一篇: LeetCode 15. 三数之和
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值