电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python新手學習函數默認參數設置

瀏覽:50日期:2022-07-23 10:00:30

在某些情況下,程序需要在定義函數時為一個或多個形參指定默認值,這樣在調用函數時就可以省略為該形參傳入參數值,而是直接使用該形參的默認值。

為形參指定默認值的語法格式如下:

形參名 = 默認值

從上面的語法格式可以看出,形參的默認值緊跟在形參之后,中間以英文“=”隔開。

例如,如下程序為 name、message 形參指定了默認值:

# 為兩個參數指定默認值def say_hi(name = '孫悟空', message = '歡迎來到C語言中文網'): print(name, ', 您好') print('消息是:', message)# 全部使用默認參數say_hi()# 只有message參數使用默認值say_hi('白骨精')# 兩個參數都不使用默認值say_hi('白骨精', '歡迎學習Python')# 只有name參數使用默認值say_hi(message = '歡迎學習Python')

上面程序中在定義 say_hi() 函數時為 name、message 形參指定了默認值,因此程序中第一次調用 say_hi() 函數時沒有為 name、message 參數指定參數值,此時 name、message 參數將會使用其默認值。

程序第二次調用 say_hi() 函數時為 name 參數(使用位置參數)指定了參數值,此時 message 參數將會使用默認值。

程序第三次調用 say_hi() 函數時為 name、message 參數(使用位置參數)都指定了參數值,因此這兩個參數都使用開發者傳入的參數值。

程序第四次調用 say_hi() 函數時只為 message 參數(使用關鍵字參數)傳入了參數值,此時 name 參數將使用默認值。

運行上面程序,可以看到如下輸出結果:

孫悟空 , 您好消息是: 歡迎來到C語言中文網白骨精 , 您好消息是: 歡迎來到C語言中文網白骨精 , 您好消息是: 歡迎學習Python孫悟空 , 您好消息是: 歡迎學習Python

從上面程序可以看出,如果只傳入一個位置參數,由于該參數位于第一位,系統會將該參數值傳給 name 參數。因此,我們不能按如下方式調用 say_hi() 函數

say_hi('歡迎學習Python')

上面調用時傳入的“歡迎學習Python”字符串將傳給 name 參數,而不是 message 參數。

我們也不能按如下方式來調用 say_hi() 函數:

say_hi(name='白骨精', '歡迎學習Python')

因為 Python 規定,關鍵字參數必須位于位置參數的后面。因此提示錯誤:positional argument follows keyword argument。

那么,我們能不能單純地將上面兩個參數交換位置呢?

#say_hi('歡迎學習Python' , name='白骨精')

上面調用依然是錯誤的,因為第一個字符串沒有指定關鍵字參數,因此將使用位置參數為 name 參數傳入參數值,第二個參數使用關鍵字參數的形式再次為 name 參數傳入參數值,這意味著兩個參數值其實都會傳給 name 參數,程序為 name 參數傳入了多個參數值。因此提示錯誤:say hi() got multiple values for argument ’name’。

將函數調用改為如下兩種形式是正確的:

say_hi('白骨精', message='歡迎學習Python')say_hi(name='白骨精', message='歡迎學習Python')

上面第一行代碼先使用位置參數為 name 參數傳入參數值,再使用關鍵字參數為 message 參數傳入參數值;第二行代碼中的 name、message 參數都使用關鍵字參數傳入參數值。

由于 Python 要求在調用函數時關鍵字參數必須位于位置參數的后面,因此在定義函數時指定了默認值的參數(關鍵字參數)必須在沒有默認值的參數之后。例如如下代碼:

# 定義一個打印三角形的函數,有默認值的參數必須放在后面def printTriangle(char, height = 5) : for i in range(1, height + 1) : # 先打印一排空格 for j in range(height - i) : print(’ ’, end = ’’) # 再打印一排特殊字符 for j in range(2 * i - 1) : print(char, end = ’’) print()printTriangle(’@’, 6)printTriangle(’#’, height=7)printTriangle(char = ’*’)

上面程序定義了二個 printTriangle() 函數,該函數的第一個 char 參數沒有默認值,第二個 height 參數有默認值。

上面程序中第一次調用 printTriangle() 時,程序使用兩個位置參數分別為 char、height 傳入參數值,這當然是允許的;第二次調用 printTriangle() 時,第一個參數使用位置參數,那么該參數值將傳給 char 參數,第二個參數使用關鍵字參數為 height 參數傳入參數值,這也是允許的;第三次調用 printTriangle() 時,只使用關鍵字參數為 char 參數傳入參數值,此時 height 參數將使用默認值,這是符合語法的。

注意點補充:

說明及注意點

a. 在使用缺省參數后,對于函數的必填參數必須在前,默認參數在后。

b. 默認參數在一個函數中可以有多個。

c. 當一個函數中的某個參數的改動不大,就可以考慮將這個參數設置為默認參數,比如說一個人的民族,這種參數就可以設置為缺省參數。

到此這篇關于Python新手學習函數默認參數設置的文章就介紹到這了,更多相關Python函數默認參數設置內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | 美国查特CHART MVE液氮罐_查特杜瓦瓶_制造全球品质液氮罐 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 南京欧陆电气股份有限公司-风力发电机官网 | 橡胶接头_橡胶软接头_可曲挠橡胶接头-巩义市创伟机械制造有限公司 | 微动开关厂家-东莞市德沃电子科技有限公司 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 房在线-免费房产管理系统软件-二手房中介房屋房源管理系统软件 | 气象监测系统_气象传感器_微型气象仪_气象环境监测仪-山东风途物联网 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 海水晶,海水素,海水晶价格-潍坊滨海经济开发区强隆海水晶厂 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 米顿罗计量泵(科普)——韬铭机械| 开云(中国)Kaiyun·官方网站 - 登录入口 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | AGV叉车|无人叉车|AGV智能叉车|AGV搬运车-江西丹巴赫机器人股份有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 电力测功机,电涡流测功机,磁粉制动器,南通远辰曳引机测试台 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 福建珂朗雅装饰材料有限公司「官方网站」 | CE认证_产品欧盟ROHS-REACH检测机构-商通检测 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 天坛家具官网 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 |