Python作业6

Demo56:

编写一段函数,计算一个整数各个数字的和,使用函数头为def sumDigits(n):

def sumDigits(n):
   s = int(n)
   count=0
   for i in range(len(n)):
       count += int(s%10)
       s = s/10
   print(count)
sumDigits(input("请输入你的值"))

Demo59:

实现摄氏度与华氏度之间的转化(使用函数进行实现)

def celsiusToFahrenheit(celsius):
    f = eval(Tempstr[:-1]) * 1.8 + 32
    print('转化后的温度是{:.2f}F'.format(f))


def fahrenheitToCelsius(fahrenheit):
    c = (eval(Tempstr[:-1]) - 32) / 1.8
    print('转换后的温度是{:.2f}C'.format(c))


Tempstr = input('请输入一个带有符号的温度值:')#输入带单位温度值


if Tempstr[-1] in ['C','c']:
    celsiusToFahrenheit(Tempstr)
elif Tempstr[-1] in ['F','f']:
    fahrenheitToCelsius(Tempstr)
else:
   print('输入格式错误,请输入时带上单位')
Demo 60
#计算m(i) = 1/2 + 2/3 + .... +i /(i+1)
n = int(input("请输入你的n\n"))
m = 0
for i in range(1,n+1):
    m += (i)/(i+1)
print(m)

Demo61 编写一个测试程序,读入三角形三边的值,若输入有效则计算面积。否则,显示输入无效

from math import sqrt  # 使用sqrt需要引用math库


def ares(a, b, c):  # 编写函数使用海伦公式计算面积
    p = (a + b + c) / 2
    ss = sqrt(p * (p - a) * (p - b) * (p - c))
    return ss

S = 0  # 初始化面积值为0
a = float(input())
b = float(input())
c = float(input())
if ((a + b > c) and (a + c > b) and (b + c > a)):
    # 可以组成三角形的条件:任意两边之和大于第三边
    S = ares(a, b, c)
    print("%.2f" % S)
else:
    print("数据错误")

Demo 62 :

 使用巴比伦函数,实现求出n平方根的近似值

def square_root(n):
    root = n / 2
    for k in range(20):
        root = (1 / 2) * (root + (n / root))
    return root


print(square_root(6))

  Demo64:编写程序显示前100个回文数。要求:每行显示10个数值,并且准确对齐!

def is_prime(n):
    flag = True
    for divisor in range(2, n // 2 + 1):
        if n % divisor == 0:
            flag = False
            break
    return flag


def is_palindrome(n):
    result = 0
    if n < 0:
        n = -n
    t = n
    while t != 0:
        remainder = t % 10
        result = result * 10 + remainder
        t //= 10
    return n == result


def main():
    n = int(input())
    count = 0
    i = 2
    while count < n:
        if is_prime(i) and is_palindrome(i):
            print(format(i, "6d"), end='')
            count += 1
            if count % 5 == 0:
                print()
        i += 1


main()

Demo64 实现前100个反素数。要求同上

def is_zhishu(num):
    for divisor in range(2, num // 2 + 1):
        if num % divisor == 0:
           return False
    return True

def reverse(num):
    return int(str(num)[::-1])

def is_not_huiwenshu(num):
    if str(num) != str(num)[::-1]:
        return True

count = 0
num = 1
while count < 100:
    if is_zhishu(num) and is_zhishu(reverse(num)) and is_not_huiwenshu(num):
        print("%4d" % num,end=" ")
        count += 1

        if count % 10 == 0:
            print()
    num += 1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值