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

Python焚诀之函数

Python焚诀之函数

题目1:简单问候函数

编写一个函数say_hello(name),接收一个名字参数,返回"你好,{name}!"格式的字符串。

要求:

  1. 定义函数,带一个参数
  2. 使用 return 返回结果
  3. 调用函数并打印输出

运行示例:

请输入你的名字:李四 你好,李四!

# 1defsay_hello(name):returnf'你好,{name}!'name=input('请输入你的名字:')print(say_hello(name))

题目2:两数之和

编写一个函数add(a, b),接收两个数字参数,返回它们的和。

要求:

  1. 定义函数,接收两个参数
  2. 使用 return 返回计算结果
  3. 获取用户输入的两个数字(转换为浮点数)
  4. 调用函数并输出结果

运行示例:

请输入第一个数字:10 请输入第二个数字:20 两数之和为:30

# 2defadd(a,b):returna+b x=float(input('num1:'))y=float(input('num2:'))print(f'{x}+{y}={add(x,y)}')

题目3:最大值函数

编写一个函数max_of_three(a, b, c),接收三个数字参数,返回其中最大的那个数。

要求:

  1. 定义函数,接收三个参数
  2. 使用 if-elif-else 判断大小
  3. 使用 return 返回最大值
  4. 调用函数并输出结果

运行示例:

请输入第一个数字:15 请输入第二个数字:8 请输入第三个数字:22 最大值为:22

#3 给出两种参考defmax3(a,b,c):ifb>a:t=bifb<c:t=celse:t=belifb<a:t=aifa<c:t=celse:t=aelse:t=aifa<c:t=celse:t=areturnt x=float(input('the first number: '))y=float(input('the second number: '))z=float(input('the third number: '))print(f'max is{max3(x,y,z)}')defmax_of_three(a,b,c):ifa>=banda>=c:returnaelifb>=aandb>=c:returnbelse:returnc x=float(input('请输入第一个数字:'))y=float(input('请输入第二个数字:'))z=float(input('请输入第三个数字:'))print(f'最大值为:{max_of_three(x,y,z)}')

题目4:姓名处理函数

编写一个函数format_name(first, last),接收姓和名两个参数,返回"姓.名"格式的字符串。

要求:

  1. 定义函数,接收两个参数
  2. 使用 return 返回格式化的结果
  3. 获取用户输入的姓和名
  4. 调用函数并输出结果

运行示例:

请输入姓:张 请输入名:三 格式化结果为:张.三

#4defformat_name(s1,s2):returnf"{s1}.{s2}"s1=input('请输入姓:')s2=input('请输入名:')print(f'格式化结果为 :{format_name(s1,s2)}')

题目5:列表求和

编写一个函数sum_list(nums),接收一个数字列表,返回列表中所有数字的总和。

要求:

  1. 定义函数,接收一个列表参数
  2. 使用 for 循环遍历列表累加
  3. 使用 return 返回总和
  4. 定义列表并调用函数输出结果

运行示例:

列表 [10, 20, 30, 40] 的总和为:100

#5defsum_list(a):s=0foriinrange(len(a)):s+=a[i]returnf'列表{a}的总和为:{s}'defsum_list1(a):s=0foriina:# i = 10, 20, 30, 40(元素本身)s+=ireturnf'列表{a}的总和为:{s}'a=[10,20,30,40]print(sum_list(a))# C vs Python 循环碎碎念# C语言(计数循环):# c# for (int i = 0; i < 3; i++) {# printf("%d", i); // i = 0, 1, 2# }# // 思维:我要循环3次,i记录当前是第几次# Python(遍历循环):# python# for i in [10, 20, 30]: or for i in range(len(a)) :# print(i) # i = 10, 20, 30# # 思维:我要遍历列表里的每个元素,i是元素本身# Python 不可以 for i in 具体数字# 选择了 in range 累加就要 s += a[i]# 选择了 for i in a 直接用 s += a

题目6:名字统计器

编写一个程序,反复让用户输入名字,输入quit时结束,然后将所有名字存入列表,最后打印所有名字。

要求:

  1. 使用 while 循环接收输入
  2. 使用列表的 append() 方法添加名字
  3. 输入quit时使用 break 退出循环
  4. 输出所有输入的名字

运行示例:

请输入名字(输入quit结束):张三 请输入名字(输入quit结束):李四 请输入名字(输入quit结束):王五 请输入名字(输入quit结束):quit 你输入的名字有:['张三', '李四', '王五']

#6defcollect():a=[]whileTrue:name=input('请输入名字:')ifname=='quit':breaka.append(name)returna result=collect()print(result)

题目7:列表平均值

编写一个函数average_list(nums),接收一个数字列表,返回列表中所有数字的平均值。

要求:

  1. 定义函数,接收一个列表参数
  2. 使用 sum() 函数求和,再除以列表长度
  3. 使用 return 返回平均值(保留2位小数)
  4. 定义列表并调用函数输出结果

运行示例:

列表 [85, 90, 78, 92, 88] 的平均值为:86.60
#7defaverage_list(l):s=0foriinl:s+=i avg=s/len(l)returnavg a=[85,90,78,92,88]print(f'列表{a}的平均值为:{average_list(a):.2f}')

Python函数焚诀:从C语言思维到Python思维的转变

今天完成了七个Python基础练习,从最简单的问候函数到列表平均值计算,看似简单的题目却让我深刻体会到思维转换的重要性。

最大的挑战来自for循环。作为C语言的"老用户",我习惯性地认为for i in range(len(a))中的i就是计数器,循环次数由range()决定。这种惯性思维导致我在做列表求和时犯了一个经典错误:for i in range(len(a)): s += i,结果把索引值0+1+2+3=6当成了列表元素的和。当意识到错误时,我才真正理解了Python中for循环的本质——遍历可迭代对象中的每个元素,而不是计数。range(len(a))生成的是[0,1,2,3],遍历的是索引;直接for i in a遍历的才是元素本身。这个认知的转变,让我对"迭代"有了更深的理解。

另一个让我印象深刻的是函数参数的传递。在题目6中,我最初写了一个带参数s的函数,却发现参数完全没用,最后删掉才明白——函数参数是为了接收外部数据,如果函数内部不需要,就不该定义。还有break必须放在循环内部的规则,也是通过报错才真正记住的。

此外,变量的命名习惯也值得反思。namenamessumtotal,看似细微的差异,却直接影响代码的可读性。用names表示列表、name表示单个名字,这种单复数对应关系让我不再混淆。

回顾这七道题,真正的问题不在语法本身,而在于用C语言的思路写Python。Python的"万物皆对象"和"迭代器"概念,需要我用新的思维方式去理解。接下来的学习中,我要时刻提醒自己:忘记C语言的计数器思维,拥抱Python的迭代哲学

http://www.jsqmd.com/news/1222809/

相关文章:

  • 2026 年更新:浦北口碑好的回收名表工作室推荐几家,别再扔!名表变现的惊人秘密曝光 - 企业官方推荐【认证】
  • 雷达全国售后电话解决您的维修保养需求权威公示(2026年7月最新) - 亨得利官方服务中心
  • 2026年7月最新积家贵阳云岩吾悦广场维修保养服务电话 - 积家官方售后服务中心
  • Unity多线程编程终极解决方案:UnityMainThreadDispatcher完整使用指南
  • 百达翡丽中国官方售后服务中心|详细地址与售后热线权威信息通告(2026年7月更新) - 百达翡丽服务中心
  • 附近的人功能如何设计
  • 三大免费心理测试平台入口地址推荐,各具特色你看哪个适合你? - 资讯焦点
  • 2026年7月最新江诗丹顿龙湖苏州胥江天街维修保养服务电话 - 江诗丹顿官方服务中心
  • 2026年7月最新劳力士无锡滨湖万达广场维修保养服务电话 - 劳力士官方服务中心
  • Unlock-Music:浏览器内一键解锁加密音乐文件的终极解决方案
  • 鸿蒙 PC Markdown 编辑器大纲解析:ATX、Setext 与源码跳转
  • 2026年7月最新芝柏北京市百货大楼维修保养服务电话 - 亨得利官方服务中心
  • 2026实力之选:佛山个性定制手工马赛克供应厂家与品牌机构实力解析 - 甄选服务推荐
  • 2026年7月最新宇舶无锡万达广场(无锡惠山店)维修保养服务电话 - 亨得利钟表维修中心
  • 核心设计哲学:FP + 不可变 + 接口扩展
  • 2026免费转MP3保姆级教程!从下载到转换手把手教学,新手零门槛 - 今日咨询
  • 2026年实测:宁波数学小升初本土培优机构,这家深耕20多年的博纳教育值得选吗?
  • 2026海归求职机构综合实力榜发布:6大平台资质、资源、上岸率全维度实测 - 互联网科技品牌测评
  • 2026年7月最新浪琴武汉军山新城万象汇维修保养服务电话 - 浪琴官方售后服务中心
  • 2026年7月最新苏州江诗丹顿官方售后客服电话及服务网点地址查询 - 江诗丹顿官方服务中心
  • 2026 年新消息:大方口碑好的新中式四合院别墅设计平台哪个好,打破传统!四合院如何实现奢适生活? - 鉴选官
  • 连锁餐饮门店如何依托特色招牌菜提升到店客流与日常订单量?
  • 终于搞懂 Kueue:5 个核心对象一次讲透
  • 宁波这些口碑超棒的婚姻律师,你知道都有谁吗
  • 如何在 UBottomSheet 中实现导航控制器:进阶使用技巧
  • 2026北京知名婚姻家事律所排名及收费标准:家企交叉、本地房产与司法口径精准破局指南 - 本地品牌推荐
  • 不是所有人都适合做“有意义的工作”
  • 江诗丹顿维修站点提供专业售后保养与维修服务权威公示(2026年7月最新) - 江诗丹顿服务中心
  • Zotero-mdnotes终极指南:文献管理到Markdown笔记的自动化转换
  • 2026年7月最新芝柏惠州大亚湾万达广场维修保养服务电话 - 亨得利官方服务中心