当前位置:   article > 正文

【python123】题目答案整理 ------更多答案见专栏_python定义一个不定参数传递函数,可接收不限数量的参数

python定义一个不定参数传递函数,可接收不限数量的参数

目录

二老鼠打洞

来自计算机的问候-任意数量参数

自定义幂函数

来自计算机的问候-多参函数

编写函数输出自除数

                        最大素数

            求数列前n项的平方和

生兔子

计算圆周率——割圆法

数列求前n项和

素数:


*如有错误请私聊纠正

二老鼠打洞

  1. n=int(input())
  2. # 每日打洞量,所需天数
  3. big,small,day,time=1,1,0,1
  4. # 各自总共打洞量
  5. distance_of_big,distance_of_small=0,0
  6. # 洞未打完 循环
  7. while n>0:
  8.     # 第一天打完的情况单独考虑
  9.     if n-big-small<0:
  10.         time=n/(big+small)
  11.     # 剩余洞长
  12.     n=n-big-small
  13.     distance_of_small=distance_of_small+small*time
  14.     distance_of_big=distance_of_big+big*time
  15.     big*=2
  16.     small*=0.5
  17.     day=day+1
  18. print(day)
  19. print(round(distance_of_small,1),round(distance_of_big,1))

来自计算机的问候-任意数量参数

  1. def say_hi_multi_parameter(*names):    # 括号里填空
  2.     """定义一个不定参数传递函数,可接收不限数量的参数。"""
  3.     for name in names:                         # 遍历输出,观察结果
  4.         print(name+",你好!")
  5. say_hi_multi_parameter('孟浩然')
  6. say_hi_multi_parameter('杜甫', '李白', '柳宗元', '李商隐')

自定义幂函数

  1. x, n = input().split()
  2. x = int(x)
  3. n = int(n)
  4. answer = x
  5. if n == 0:
  6.     answer = 1
  7. elif n == 1:
  8.     answer = x
  9. else:
  10.     for i in range(n - 1):
  11.         answer= answer * x
  12. print(answer)


来自计算机的问候-多参函数

  1. def say_hi_gender(full_name, gender):
  2.     """定义一个名为say_hi_gender的有参数函数,
  3.     根据性别gender值确定称谓,男性称为“先生”,女性称为“女士”,不确定性别时称为“先生/女士”
  4.     返回值为替换了姓名与称谓的欢迎字符串
  5.     例如:尊敬的李白先生,欢迎来到火星!"""
  6.     if gender =="男":
  7.         return f"尊敬的{full_name}先生,欢迎来到火星!"
  8.     elif gender =="女":
  9.         return f"尊敬的{full_name}女士,欢迎来到火星!"
  10.     else:
  11.         return f"尊敬的{full_name}先生/女士,欢迎来到火星!"
  12.     #=======================================================
  13.     #=======================================================
  14. # 函数名作为print()函数的参数,输出say_hi_gender()的返回值
  15. person_name = input()               # 输入人名,如输入:李白
  16. person_gender = input()             # 输入性别,如输入:男
  17. print(say_hi_gender(person_name, person_gender))  # 调用函数,输出函数的返回值


编写函数输出自除数

  1. def selfDivisor(num):
  2.     t=str(num)
  3.     if '0' in t:
  4.         return 0
  5.     for i in t:
  6.         if num%int(i)!=0:
  7.             return 0
  8.     return 1
  9.     
  10. n=int(input())
  11. ls=[]
  12. for i in range(1,n+1):
  13.     if selfDivisor(i):
  14.         print(i,end=" ")

最大素数

  1. def isPrime(n):
  2.     for i in range(2,int(n/2)):
  3.         if n%i == 0:
  4.             return False
  5.             break
  6.     return True
  7. a = int(input())
  8. i = a
  9. while i >= 2:
  10.     if isPrime(i):
  11.         print (i)
  12.         break
  13.     i-=1


    
    
    
求数列前n项的平方和

  1. n=eval(input())
  2. n=n+1
  3. s=0
  4. for i in range(1,n):
  5.     s=s+i*i
  6. print(s)

生兔子

  1. def fun(n):
  2. #在前两个月兔子的对数都为1
  3.     if n <= 2:
  4.         return 1
  5.     else:
  6. # 由数据的规律可知,第三个数的结果都是前两个数之和,所以进行递归叠加
  7.         return fun(n-1) + fun(n-2)
  8. #获取输入的月数
  9. num = int(input())
  10. #计算前一个月和后一个月的比值
  11. match = fun(num-1)/fun(num)
  12. match = round(match, 4)
  13. match = ("%.4f" % match)
  14. #print(match)
  15. match = str(match).split(".")[0] + "." + str(match).split(".")[1][:3]
  16. #
  17. print(f"{fun(num)} {match}")

计算圆周率——割圆法


 

  1. import math
  2. def cutting_circle(times):   # times为分割次数
  3.     side_length = 1          # 初始边长
  4.     edges = 6                # 初始边数
  5.     def f(x):  ## 由当前边长,求割后边长
  6.         h = 1 - math.sqrt(1 - (x / 2) ** 2)
  7.         return math.sqrt(h ** 2 + (side_length / 2) ** 2)
  8.         
  9.     for i in range(times):
  10.         side_length = f(side_length)
  11.         edges *= 2
  12.     pi = edges*side_length/2
  13.     return edges, pi
  14. if __name__ == '__main__':
  15.     times = int(input())          # 割圆次数
  16.     print('分割{}次,边数为{},圆周率为{:.6f}'.format(times, *cutting_circle(times)))          # 圆周率
  17.     print('math库中的圆周率常量值为{:.6f}'.format(math.pi))
  18.     


    
    
    
    
出租车:

  1. a,b=map(int,input().split(','))
  2. ans=0
  3. if a>15:
  4.     ans+=(a-15)*2.3*1.5
  5.     a=15
  6. if a>3:
  7.     ans+=(a-3)*2.3
  8.     a=3
  9. ans+=13
  10. ans+=b
  11. print(int(ans)) 


数列求前n项和

  1. n=int(input())
  2. sum=0
  3. fz=2
  4. fm=1
  5. for i in range(n):
  6.     sum=sum+fz/fm
  7.     
  8.     fm,fz=fz,fz+fm
  9. print(sum)


素数:

  1. def isPrime(n):          # 定义判断素数的函数
  2.     for i in range(2,int(n**0.5)+1):
  3.         if n%i==0:
  4.             return 0
  5.     return 1
  6.     
  7. num = int(input())       # 接收用户输入并转成整数
  8. for i in range(2,num+1):
  9.     if isPrime(i)==1:
  10.         print(i,end=' ')

 ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬说明此题目来自【Python123】,答案为自己创作,不产生任何商业利益,如有侵权,请联系删除。Python123 - 编程更简单Python123 是面向新工科教学需求的计算机类基础课程教学辅助平台。支持全国计算机二级 python 考试自学与备考,还向合作教师与高校提供精品教学资源、全系列课程内容、全流程教学工具,支撑课程教学管理、练习、考试、教学研究等实际需求,为国家级、省部级一流课程提供教学研究数据支撑。https://python123.io/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/499152
推荐阅读
相关标签
  

闽ICP备14008679号