首页 > Python资料 博客日记
Python头歌第四章作业(初级部分)
2024-05-11 22:00:03Python资料围观438次
目录
任意数量参数
定义一个函数 say_hi_multi_parameter
,使之可接收任意数量的姓名为参数,调用函数时,可以传递多个参数。 有时候你预先不知道函数需要多少实参,此时可以给函数传递一个用 “*”
开头的序列类型的参数,例如:“*id”
,形参名 id
前面的星号会让 Python
创建一个空元组,将收集到的所有实参值都封装到这个元组里。
编程要求
根据提示,在右侧编辑器补充代码,完善一个能任意数量参数进行计算机问候的小程序。
代码实现
def say_hi_multi_parameter(*name): # 括号里填上参数
# 对齐此处补充代码
for i in name:
print(f'{i},你好!')
#调用say_hi_multi_parameter并传入参数
say_hi_multi_parameter('孟浩然')
say_hi_multi_parameter('杜甫', '李白', '柳宗元', '李商隐')
测试说明
平台会对你编写的代码进行测试:
输入格式 无输入
输出格式 分行对每个传入的参数输出“XXX,你好!”
输出: 孟浩然,你好!
杜甫,你好!
李白,你好!
柳宗元,你好!
李商隐,你好!
汽车迷
这题的难点在于不清楚没有输入品牌时怎么输出宝马
任务描述
小明是一个汽车迷,看到什么汽车马上就可以说出汽车的生产年份、型号和品牌。定义一个函数,可以输出汽车的介绍。
例如输入: 2020 AMG_S65 奔驰
输出: 这是一辆2020年生产,型号是AMG_S65的奔驰牌汽车
要求函数具有以下功能:当用户只输入生产年份、型号时,品牌按“宝马”输出。
代码实现
def Car(year,sty,*brand): # * 为了让后面传入的形成一个元组
#####
if brand != None: # 如果有品牌输入
brand = brand[0]
else:
brand = '宝马'
return f'这是一辆{year}年生产,型号是{sty}的{brand}牌汽车。'
ls = input().split() # 根据空格切分输入字符串为列表
print(Car(*ls)) # 调用函数,取列表中的全部数据做参数
输入格式
输入用空格分隔的年、型号和品牌(品牌可能没有)
输出格式
这是一辆年生产,型号是的牌汽车。( 根据用户输入进行替换)
示例
输入: 2020 AMG_S65 奔驰
输出: 这是一辆2020年生产,型号是AMG_S65的奔驰牌汽车。
编写函数输出自除数
任务描述
一个不含0的数,如果它能被它的每一位除尽,则它是一个自除数。例如128是一个自除数,因为128能被1、2、8整除。编写函数selfDivisor(num)判断num是否为自除数,使用该函数输出不大于N的所有自除数。 (注意,含有数字0的数不是自除数)
代码实现
def selfDivisor(num):
if '0' in str(num):
return False # 包含数字0的不是自除数
for c in str(num): # 对数字num中的每位数字进行遍历
if num % int(c) != 0: # 测试num的每一位是否是num的因子
return False # 如果存在不能整除的数,则不是自除数
# 如果for遍历顺利结束,未遇到return,则执行else子句,返回True
return True
n=int(input())
for num in range(1,n+1): # 注意不大于包括等于n
if selfDivisor(num): # 调用函数,当返回值为True时,该数为自除数,输出这个数
print(num,end=' ') # 输出以空格结尾
输入格式
输入为一行,一个正整数N(N>=1)。
输出格式
输出为一行,是不大于N的所有自除数,每个数后面有一个空格。
示例 1
输入: 1
输出: `1``
示例 2
输入: 22
输出: 1 2 3 4 5 6 7 8 9 11 12 15 22
二分法求平方根
任务描述
设计一个用二分法计算一个大于或等于 0 的实数 n 的平方根的函数sqrt_binary(n),实数 n和计算精度控制由用户在同一行内输入,用逗号进行分隔,输出结果严格保留8位小数。当(abs(x * x - n) )小于或等于设定的精度时,近似认为 x * x == n。 注:初始区间取[0,n+0.25]
代码实现
import math
def sqrt_binary(num, accuracy):
"""接收一个浮点数num和一个表示计算精度的浮点数accuracy为参数,用二分法计算浮点数的平方根x,
当 abs(x * x - num) <= accuracy时认为达到计算精度,以浮点数类型返回计算得到的平方根。"""
low, high = 0, num + 0.25 # 设定初始区间
while True: # 构建无限循环
x = (high + low) / 2 # 假设平方根落在区间的二分之一处,即中点
if abs(x * x - num) <= accuracy: # 当误差小于计算精度时,终止循环
return x # 返回当前的x值为平方根
elif x * x - num < 0: # 当前x的平方小于num时,平方根应该位于右侧区间
low = x # 以当前数值为区间下限,缩小区间为原来的一半
else: # 当前x的平方大于num时,平方根应该位于左侧区间
high = x # 以当前数值为区间上限,缩小区间为原来的一半
n, error = map(float, input().split(',')) # 输入浮点数 n 和计算精度
print('{:.8f}'.format(sqrt_binary(n, error))) # 调用二分法函数计算平方根
print('{:.8f}'.format(math.sqrt(n))) # 用math库中的sqrt()计算平方根
初始区间的设置还不是太懂
输入格式
在同一行内输入一个浮点数 n(大于或等于0)和一个代表精度的浮点数(可用1e-m格式输入),逗号分隔。
输出格式
第一行输出用自己设计的函数计算得到的平方根 第二行输出用math库开平方函数计算得到的平方根
示例
输入: 5.0,1e-7
输出: 2.23606796
2.23606798
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj