matlab调用python函数未定义函数类_从零学习Python—调用函数def用法(下)
我們先來看看def和字典的用法吧:
def ranks(name, number): ranks = {'name': name, 'rank': number}print(ranks)name = input('what is your name ')number = input('how much is ranked ')ranks(name, number)代碼及結果如上圖所示,寫的比較簡單,應該沒有什么地方要解釋的。
咱們在上面的例子上再加上一行代碼,就可以玩一年了:
while True:def ranks(name, number): ranks = {'name': name, 'rank': number}print(ranks) name = input('what is your name ') number = input('how much is ranked ') ranks(name, number)這樣就進入了while 循環(huán)中,我們填入姓名和排名,就能打印出相應的字典了。如果要退出循環(huán),就要用到break語句了,
while True:def ranks(name, number): ranks = {'name': name, 'rank': number}print(ranks) name = input('what is your name ')if name == 'q':print('exit')break number = input('how much is ranked ') ranks(name, number)這么我們使用了if+break的用法,代碼及結果如上圖所示,都算是些常用的用法,知道用法后,要靈活運用。
咱們再來看看def和列表的一些例子,看看它們是怎么一塊使用的:
def user(names):for name in names:print(name)user_names = ['av','bv','cv']user(user_names)這是一個簡單的def和列表的運用,如果要得到結果,其實直接給出一個列表,用for循環(huán)會更簡單,但調用函數(shù)def在下次要打印user()會更方便,也有利于代碼的維護。
講到這,大家會不會有個疑問:我也不知道我的的調用函數(shù)里的形參寫多少好,不能一一對應,到時代碼會報錯啊。
我反正是有這個疑問的,畢竟我后面想用到它,但是形參我只寫了一個,而我實參卻有兩個,咱們來看看這個錯誤代碼:
咱們主要看它報的錯,這個也是學習的一個能力,畢竟人人都會犯錯,要學會快速的解決問題。
TypeError: names() takes 1 positional argument but 2 were given
大致就是說只有一個形參,卻給了2個實參。
好了,不賣乖了,這時我們可以用到‘*’來解決,還是上面的例子:
def names(*name):print(name)names('av','bv')咱們只是在形參前面加了一個星號,就可以解決這個問題了,不管調用語句提供了多少實參,這個形參都將它們統(tǒng)統(tǒng)收入囊中,要記住哦。
講到這,我們在多學一點,雖然 *形參可以囊括所有的實參,但在python中,先匹配位置實參和關鍵字實參,再將余下的實參都收集到最后一個形參中。 咱們還是看例子:
def name_number(name,*numbers):print(name)for number in numbers:print(number)name_number('av',1,2,3,4)這里我們特意用了字符串加數(shù)字以供區(qū)分,總那言之,就是在默認情況下,按順序對應,其它多的實參全都儲在了 *形參中。
好了,今天就到這了,大家多多練習吧。
總結
以上是生活随笔為你收集整理的matlab调用python函数未定义函数类_从零学习Python—调用函数def用法(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: case when的判断顺序_CASE
- 下一篇: 哨兵机器人钢力士_哨兵胳膊都被卸了?巴西