1.在定义有默认参数的函数时,需要注意以下: 必传参数必须在前面,默认参数在后;
创新互联建站是一家集网站建设,青山企业网站建设,青山品牌网站建设,网站定制,青山网站建设报价,网络营销,网络优化,青山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
备注:python为了简化函数的调用,提供了默认参数机制,这样在调用函数时,就可以省略最后一个参数不写;设置何种参数为默认参数?一般来说,将参数值变化小的设置为默认参数。
2. 若参数为列表,且有默认值
2.1若调用方法时传该参数,则没有问题
2.2 若调用方法时不传该参数,则有问题 ,问题是:每次调用该方法时,该参数不是创建方法时的默认值,而是多次调用被修改后的列表。
代码示例
# 写一个Python函数,其说明如下:
# def get_word_score(word):
# word: string
# returns: int = 0
# 函数返回单词word的得分。一个单词的得分是单词中所有字母的得分
# 之和。单词中每个字母的得分在下面的字典SCRABBLE_LETTER_VALUES
# 中表示。字母不区分大、小写。例如'e'和'E'的得分都是1,'p'和'P'
# 的得分都是3。单词'egg'的得分是1+2+2=5,单词'No'的得分是1+1=2。
# 假设输入的word是一个单词或空字符串""。字符串中可以有大写和小写
# 字母,在函数中应处理word中出现大写字母的情况。
# 请使用具体的字符串实例测试此函数
# SCRABBLE_LETTER_VALUES = {
# 'a': 1, 'b': 3, 'c': 3, 'd': 2, 'e': 1, 'f': 4, 'g': 2, 'h': 4, 'i': 1, 'j': 8, 'k': 5, 'l': 1, 'm': 3, 'n': 1, 'o': 1, 'p': 3, 'q': 10, 'r': 1, 's': 1, 't': 1, 'u': 1, 'v': 4, 'w': 4, 'x': 8, 'y': 4, 'z': 10
# }
# 下面是一个运行示例:
# Score of 'About'is 7
def get_word_score(word): # 定义获取单词分数方法
if not word: # 如果输入单词为空
return 0 # 则返回0
SCRABBLE_LETTER_VALUES = { # 定义每个字母的分数
'a': 1, 'b': 3, 'c': 3, 'd': 2, 'e': 1, 'f': 4, 'g': 2,
'h': 4, 'i': 1, 'j': 8, 'k': 5, 'l': 1, 'm': 3, 'n': 1,
'o': 1, 'p': 3, 'q': 10, 'r': 1, 's': 1, 't': 1,
'u': 1, 'v': 4, 'w': 4, 'x': 8, 'y': 4, 'z': 10
}
word = word.lower() # 输入单词全部转换成小写
score = 0 # 定义分数,初始化为0
for c in word: # 遍历输入字符
score += SCRABBLE_LETTER_VALUES[c] # 累加每个字母的得分
return score # 输入单词最终得分
if __name__ == '__main__': # 定义程序运行入口
print('please input the word:') # 输入提示信息
w = input() # 获取输入的单词
print('Score of \'{}\' is {}'.format(w, get_word_score(w))) # 输出输入单词得分
这个是python3里面新加入的语法,表示类型标注,提示a变量是一个迭代类型。有没有这个类型标注不会影响代码运行。