赞
踩
目录
定义一个函数 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``
输入: 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。