pyhton第九天作业

文章提供了多个编程挑战,包括找出输入整数中的最大值及其出现次数,通过蒙特卡罗模拟计算飞镖落在正方形奇数区域的概率,计算整数各数字之和,反向显示整数,以及摄氏度和华氏度之间的转换。此外,还涉及到数列求和问题和一个关于三角形有效性和面积计算的模块。
摘要由CSDN通过智能技术生成

目录

(最大数的出现)编写程序读取整数,找出它们中的最大值,然后计算它的出现次数。假设输入以数字0 结束。假设你输入的是“3 5 2 5 5 50”;序找出的最大数是而 的出现次数是4(提示:维护两个变量 max和count。变量 max 存储的是当前最大数,而count 存储的是它的出现次数。初始状态下,将第一个值赋值给 max,将1赋值给 count。将 max 和每个随后的数字进行比较。如果这个数字大于 max,就将它赋值给 max 且将 ount重置为1。如果这个数等于max,给 count自增1。)

(蒙特卡罗模拟)一个正方形被分为四个更小的区域,如图a所示。如果你投掷一个飞镖到这个正方形一百万次,这个飞镖落在一个奇数区域里的概率是多少?编写程序模拟这个过程然后显式结果。(提示:将这个正方形的中心放在坐标系统的中心位置,如图b 所示。在正方形中随机产生一个点,然后统计这个点落入奇数区域的次数。

​编辑

求一个整数各个数字的和)编写一个函数,计算一个整数各个数字的和。使用下面的函数头:

​编辑

反向显示一个整数)编写下面的函数,反向显示一个整数

​编辑

摄氏度和华氏度之间的转换)编写一个包含下面两个函数的模块

​编辑

数列求和)编写一个函数计算下面的数列

​编辑

MyTriangle 模块)创建一个名叫 MyTriangle 的模块,它包含下面两个函数


(最大数的出现)编写程序读取整数,找出它们中的最大值,然后计算它的出现次数。
假设输入以数字0 结束。假设你输入的是“3 5 2 5 5 50”;序找出的最大数是而 的出现次数是4(提示:维护两个变量 max和count。变量 max 存储的是当前最大数,而count 存储的是它的出现次数。初始状态下,将第一个值赋值给 max,将1赋值给 count。将 max 和每个随后的数字进行比较。如果这个数字大于 max,就将它赋值给 max 且将 ount重置为1。如果这个数等于max,给 count自增1。)
 

mnx = 0
count = 0
while True:
    num = int(input("请输入一个数字 (以数字0结束): "))
    if num == 0:
        break
    if num > mnx:
        mnx = num
        count = 1
    elif num == mnx:
        count += 1
print("最大的数字是:", mnx)
print("最大数字出现的次数是: ", count)

 

(蒙特卡罗模拟)一个正方形被分为四个更小的区域,如图a所示。如果你投掷一个飞镖到这个正方形一百万次,这个飞镖落在一个奇数区域里的概率是多少?编写程序模拟这个过程然后显式结果。(提示:将这个正方形的中心放在坐标系统的中心位置,如图b 所示。在正方形中随机产生一个点,然后统计这个点落入奇数区域的次数。
 


import random
sm = 0
for i in range(0, 1000001):
    x = random.random() * random.choice([-1, 1])
    y = random.random() * random.choice([-1, 1])
    if x <= 0 or (x >= 0 and y >= 0 and (y / (1 - x) >= 1)):
        sm += 1
a = sm / 1000000
print("1000000个随机点落在奇数区域的概率是%.12f" % a)

 

求一个整数各个数字的和)编写一个函数,计算一个整数各个数字的和。使用下面的函数头:

number = int(input("请输入一个数字:"))
 
 
def sumDigits(n):
    sm = 0
    while n != 0:
        sm += n % 10
        n = n // 10

 

反向显示一个整数)编写下面的函数,反向显示一个整数


number = int(input("请输入一个数字:"))
 
 
def reverse(num):
    rum = 0
    while num != 0:
        rum = rum * 10 + num % 10
        num //= 10
    return rum
 
 
print(reverse(number))

 

摄氏度和华氏度之间的转换)编写一个包含下面两个函数的模块


def celsiusToFahrenheit(celsius):
    Fahrenheit = (9 / 5) * celsius + 32
    return Fahrenheit
 
 
def fahrenheitToCelsius(fahrenheit):
    celsius = (5 / 9) * (fahrenheit - 32)
    return celsius
 
 
print("Celsius\t\tFahrenheit\t\tFahrenheit\tCelsius")
i = 40
for j in range(120, 20, -10):
    print(i, end="\t\t\t")
    print("%.1f" % (celsiusToFahrenheit(i)), end="\t\t\t")
    print(j, end="\t\t\t")
    print("%.2f" % (fahrenheitToCelsius(j)))
    i -= 1
    if i == 30:
        break

 

数列求和)编写一个函数计算下面的数列


def m(i):
    sum = 0
    print(i, end="\t\t\t\t")
    for i in range(1, i + 1):
        sum += i / (i + 1)
    return sum
 
 
print("i\t\t\t\tm(i)")
for i in range(1, 21):
    print("%.4f" % m(i))

 

MyTriangle 模块)创建一个名叫 MyTriangle 的模块,它包含下面两个函数

def isValid(side1, side2, side3):
    return side1 + side2 > side3 and side2 + side3 > side1 and side1 + side3 > side2
 
 
def area(side1, side2, side3):
    s = (side1 + side2 + side3) / 2
    return (s * (s - side1) * (s - side2) * (s - side3)) ** 0.5
 
 
s1, s2, s3 = eval(input("请输入三角形三边长:"))
if isValid(s1, s2, s3):
    print("area is %.2f" % area(s1, s2, s3))
else:
    print("Invalid")

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值