1.“吃饭,睡觉,打豆豆”是网络上最为流行的小笑话之一,这则笑话的具体内容如下。
有个记者去南极采访一群企鹅。
他问第一只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,打豆豆!”接着又问第二只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,打豆豆!”接着又问第三只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,打豆豆!”…记者带着困惑问其他的企鹅,答案都一样,就这样一直问了99只企鹅。当走到第100只小企鹅旁边时,记者问他:“你每天都做什么?”那只小企鹅回答:“吃饭,睡觉。”记者惊奇的又问:“你怎么不打豆豆?”小企鹅撇着嘴:,瞪了记者一眼说:“我就是豆豆!”请编写一个程序,要求如下:
(1)编写一个函数用来描述记者与这100只企鹅对话的全过程,其输出格式为
记者问第1只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,打豆豆!”
记者问第2只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,打豆豆!”

记者问第99只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,打豆豆!”
记者问第100只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,我就是豆豆!”

(2)在主程序下测试该函数。

def interview():for n in range(1, 100):print('记者问第{}只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,打豆豆!”'.format(n))print('记者问第100只企鹅:“你每天都做什么?”企鹅说:“吃饭,睡觉,我就是豆豆!”')interview()

输出结果

2.以下为输出韩国流行歌曲Nobady一段歌词(有修改)的代码,

print(‘I want nobody nobody but you’)
print(‘I want nobody nobody but you’)
print(‘How can i be with another’)
print(“I don’t want any other”)
print(‘I want nobody nobody but you’)
print(‘I want nobody nobody but you’)
print(‘I want nobody nobody but you’)

请将上述代码中的重复部分抽象(定义)成一个函数,并在主程序中调用该函数,以使源代码显得更简洁一些。

def nobody(n):for i in range(n):print('I want nobody nobody but you')nobody(2)
print('How can i be with another')
print("I don't want any other")
nobody(3)

输出结果

I want nobody nobody but you
I want nobody nobody but you
How can i be with another
I don't want any other
I want nobody nobody but you
I want nobody nobody but you
I want nobody nobody but you

3.编写isOdd()函数,该函数应有一个整数参数,如果该参数为奇数,函数返回True,否则返回Flase。最后在主程序中测试该函数。

def isOdd(n):return n % 2 != 0n = int(input('输入一个整数:'))
print(f'{n}是奇数') if isOdd(n) else print(f'{n}不是奇数')

输出样例

输入一个整数:62
62不是奇数

4.按如图所示的流程进行计算,若开始输入的x的值为正数,最后输出的结果为656,请编程输出符合条件的x的值。

def fun(n):while (n - 1) / 5 > 0:n = (n - 1) / 5return nprint(fun(656))

5.2016年,微信朋友圈中曾疯传“手机尾号暴露你的年龄”,其算法如下:看一下你手机号的最后一位;把这个数字×2;然后加上5;再×50;把得到的数加上1766;用这个数-你出生的那一年,现在得到一个新的数字,该数的最后两位就是你的实际年龄。(本规则仅适用于年龄在100岁以内的人)。
现在,请解决以下问题:
(1)编写一个函数,该函数有两个参数:一个参数为手机号最后一位;另一个参数为四位数的出生年份该函数最后返回按照上述规则计算出来的年龄。
(2)在主程序中,测试该函数,该函数能正确反映出你的真实年龄吗?如果不能,如何修改计算规则?

def fun(m, n):return ((m * 2 + 5) * 50 + 1766 - n) % 100m = int(input('请输入手机号最后一位:'))
n = int(input('请输入四位出生年份:'))
print(fun(m, n))

6.编写一个程序,在主程序中求1900~2020年中所有的闰年,每行输出5个年份。闰年即能被4整除,但不能被100整除,或者能被400整除的年份。要求定义一个函数isLeap(),该函数用来判断某年是否为闰年,是闰年则函数返回True,否则返回Flase。

def isLeapYear(year):return year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)count = 0
for n in range(1900, 2021):if isLeapYear(n) :print(n, end='\t')count += 1if count % 5 == 0:print()

7.编写一个函数,求一个正整数n的各位数字之和,并在主程序中测试该函数。

def fun(n):sum = 0for i in str(n):sum += int(i)return sumdef fun2(n):ls = [int(c) for c in str(n)]return sum(ls)def fun3(n):ls = list(map(int, str(n)))return sum(ls)count = 0
n = eval(input('Enter a integer:'))
print(f'{n}各位数之和为:{fun(n)}')
print(f'{n}各位数之和为:{fun2(n)}')
print(f'{n}各位数之和为:{fun3(n)}')

8.求出所有符合下列条件的三位正整数:分别乘以3、4、5、6、7后得到的整数的各位数字之和都相等。输入示例:

def fun(n):ls = [int(c) for c in str(n)]return sum(ls)count = 0
for n in range(100, 1000):if fun(n) == fun(n * 3) == fun(n * 4) == fun(n * 5) == fun(n * 6) == fun(n * 7):count += 1print(f"x={n}: x*3={n * 3}, x*4={n * 4}, x*5={n * 5}, x*6={n * 6}, x*7={n * 7}")
print(f"共有{count}个符合条件的三位数")

9.在主程序中输入一个整数n,判断该数是否为完数。所谓完数,是一些特殊的自然数,它所有的真因子(即除了自身以外的约束)的和,恰好等于它本身。如6=1+2+3,所以6是完数。要求定义一个函数,用来判断某个整数是否未完数,是完数则函数返回1,否则返回0。最后在主程序中测试该函数。

def fun(n):s = 0for i in range(1, n):if n % i == 0:s = s + ireturn 1 if s == n else 0def fun2(n):ls = [i for i in range(1, n) if n % i == 0]return 1 if sum(ls) == n else 0n = int(input('请输输入一个整数:'))
print(f'{n}是完数') if fun(n) == 1 else print(f'{n}不是完数')
print(f'{n}是完数') if fun2(n) == 1 else print(f'{n}不是完数')

10.

def fun(m, n):ls = [i ** m for i in range(1, n + 1)]return sum(ls)print(fun(1, 100) + fun(2, 50) + fun(-1, 10))

11.

def fun(a, n):s = 0item = 0for i in range(n):item = item * 10 + as += itemreturn sdef fun2(a, n):s = 0for i in range(1, n + 1):s += int(str(a) * i)return sdef fun3(a, n):ls = [int(str(a) * i) for i in range(1, n + 1)]return sum(ls)a, n = eval(input("输入a和n[用逗号分隔]:"))
s = fun(a, n)
print(f"若a={a},n={n},则s=a+aa+aaa+...+aaa...aaa={s}")
s = fun2(a, n)
print(f"若a={a},n={n},则s=a+aa+aaa+...+aaa...aaa={s}")
s = fun3(a, n)
print(f"若a={a},n={n},则s=a+aa+aaa+...+aaa...aaa={s}")

12.

import randomdef redPacket1(money=100, number=15):ls = []for n in range(number - 1):lucky_money = random.uniform(0.01, money - (number - 1 - n) * 0.01)lucky_money = round(lucky_money, 2)ls.append(lucky_money)money = money - lucky_moneyls.append(round(money, 2))return lsdef redPacket2(money=100, number=15):ls = []for n in range(number - 1):lucky_money = random.uniform(0.01, money / (number - n) * 2)lucky_money = round(lucky_money, 2)ls.append(lucky_money)money = money - lucky_moneyls.append(round(money, 2))return lsdef redPacket3(money=100, number=15):money = money * 100ls = []for n in range(number - 1):lucky_money = random.randint(1, int(money / (number - n) * 2))ls.append(lucky_money / 100)money = money - lucky_moneyls.append(money / 100)return lsa = redPacket1()
print(a)
print(sum(a))a = redPacket2()
print(a)
print(sum(a))a = redPacket3()
print(a)
print(sum(a))a = redPacket3(1000)
print(a)
print(sum(a))a = redPacket3(1000, 20)
print(a)
print(sum(a))a = redPacket3(10, 6)
print(a)
print(sum(a))# money = float(input('红包总金额:'))
# number = int(input('红包数量:'))
# print(redPacket(money, number))

13.编写一个函数isdiff(n),用来判断参数n的各位数字是否互不相同,若互不相同,则返回1,否则返回0,并在主程序中测试该函数。

def isdiff(n):s = str(n)for i in s:if s.count(i) > 1:return 0else:return 1def isdiff2(n):a = str(n)b = set(a)return 1 if len(a) == len(b) else 0n = int(input('请输入一个正整数:'))
if isdiff(n) == 1:print(f'{n}的各位数字互不相同')
else:print(f'{n}中有重复数字')if isdiff2(n) == 1:print(f'{n}的各位数字互不相同')
else:print(f'{n}中有重复数字')

14.编写一个函数,接受一个列表参数,函数返回该列表中所有正数之和。最后在主程序中测试该函数。

def fun(ls):_ls = [i for i in ls if i > 0]return sum(_ls)def fun2(ls):_ls = filter(lambda n: n > 0, ls)return sum(_ls)ls = eval(input('请按照列表格式输入列表元素:'))
print(f'该列表中所有正数之和为:{fun(ls)}')
print(f'该列表中所有正数之和为:{fun2(ls)}')

15.重复元素判定。编写一个函数,接受一个列表最为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变源列表的值。最后在主程序中测试该函数。

def fun(ls):for n in ls:if ls.count(n) > 1:return Trueelse:return Falsedef fun2(ls):return len(set(ls)) < len(ls)ls = eval(input('请按照列表格式输入列表元素:'))
if fun(ls) == True:print('该列表中存在重复元素')
else:print('该列表中不存在重复元素')if fun2(ls) == True:print('该列表中存在重复元素')
else:print('该列表中不存在重复元素')

整理实属不易,请多多点赞+关注

Python.习题七 函数(上)相关推荐

  1. 笨方法学习Python 习题19 函数和变量 ---学习记录

    习题19 函数和变量 #定义cheese_and_crackers函数,参数有括号里的俩 def cheese_and_crackers(cheese_count,boxes_of_crackers) ...

  2. python习题:函数

    python习题演练(三)(函数) 目录 python习题演练(三)(函数) 五.函数 五.函数 累加函数 描述:编写一个函数实现从 1 到 N 共 N 个数的累加 对指定r计算圆的面积(补全代码) ...

  3. python函数作为参数例题_笨办法学Python 习题 19: 函数和变量

    函数这个概念也许承载了太多的信息量,不过别担心.只要坚持做这些练习,对照上个练习中的检查点检查一遍这次的联系,你最终会明白这些内容的. 有一个你可能没有注意到的细节,我们现在强调一下:函数里边的变量和 ...

  4. 第七篇 python基础之函数,递归,内置函数

    阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归调用 ...

  5. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、在折线图上为每个数据点添加日期数据标签

    Python使用matplotlib函数subplot可视化多个不同颜色的折线图.在折线图上为每个数据点添加日期数据标签 目录

  6. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、在折线图上为每个数据点添加数值标签

    Python使用matplotlib函数subplot可视化多个不同颜色的折线图.在折线图上为每个数据点添加数值标签 目录

  7. python中label函数_python实现在函数图像上添加文字和标注的方法

    如下所示: import matplotlib.pyplot as plt import numpy as np from matplotlib import font_manager #先确定字体, ...

  8. Python联调七牛云异步上传文件

    注:本篇文章参考文献 乾坤大挪移,如何将同步阻塞(sync)三方库包转换为异步非阻塞(async)模式?Python3.10实现.-刘悦. 首先需要拥有一个七牛云的账号 七牛云官网:七牛云 | 一站式 ...

  9. python 上传图片到七牛云上

    后端,生成token # 自己的密钥 assess_key = 'lJmRta45LtmYLB****************HHb_0M4TR-' secret_key = 'OqrHGUXASeW ...

最新文章

  1. Placements(连接)
  2. UA MATH571A 多元线性回归I 模型设定与推断
  3. 使用准现网的数据,使用本地的样式脚本,本地调试准现网页面(PC适用)
  4. 信息奥赛一本通(1119:矩阵交换行)
  5. 16软件1班安卓第一学期学习总结
  6. 找出单身狗java_Java单身狗 —— 单例模式
  7. xshell 使用教程
  8. Spring 学习记录6 BeanFactory(2)
  9. [词性] 四、形容词
  10. Git冲突与解决方法
  11. word里如何在□里打√!框框里打勾!!!!!
  12. 系统命名法(IUPAC命名法)
  13. elasticsearch进阶(3)—— ilm policy
  14. u盘出现该项目不在计算机中怎么办,怎么解决U盘使用过程中出现的各种问题
  15. 蚂蚁金服开源地理可视化引擎 L7 2.0 正式版来了,让地图动起来
  16. Vue前后端的上传和下载模块以及遇到的问题
  17. linux拷贝文件函数,如何使用Linux的splice()函数将文件复制到另一个文件?
  18. 如何鉴定游戏音乐的音质?
  19. 第20回 二弟呀,你赤兔带蓝牙不?
  20. c语言教学系统设计报告,C语言在线教学系统的设计与实现

热门文章

  1. 阿里云国际版购买了服务器后如何下载发票?
  2. 如何使用阿里云国际版控制台使用海外云服务器-Unirech
  3. 漫画:程序员找工作—外包公司
  4. 观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄。舍利子,色不异空,空不异色,色即是空,空即是色,受想行识,亦复如是。舍利子,是诸法空相,不生不灭,不垢不净,不增不减。是故空中无色,无受想行识
  5. MATLAB 级数计算
  6. Fleck说明文档翻译
  7. 组件分享之后端组件——基于Golang语言的游戏服务器框架leaf
  8. php中文搜索工具,Laravel 下 TNTSearch+jieba-PHP 实现中文全文搜索
  9. C语言深度剖析——关键字sizeof、整型数据存储深入、数据类型取值范围深入
  10. 数学/基础数论——从LeetCode题海中总结常见套路