zoukankan      html  css  js  c++  java
  • Python【每日一问】33

    问:

    【基础题1】:设计一个重量转换器,输入以“g”为单位的数字后返回换算成“kg”的结果

    【基础题2】:设计一个求直角三角形斜边长的函数,比如直角边长分别为3和4,输出结果为:The right triangle third side's length is 5.0

    【提高题】:打印出杨辉三角形(实现根据键盘输入数字打印出相应数量的行,比如,输入10,则打印出 10 行)

    答:

    【基础题1】:设计一个重量转换器,输入以“g”为单位的数字后返回换算成“kg”的结果

    方法1:

    def weight_conversion(weight, option):
        if option == '1':
            return str(weight * 1000) + 'g'
        elif option == '2':
            return str(weight / 1000) + 'kg'
        else:
            print('没有此选项')
    ​
    ​
    if __name__ == '__main__':
        option = input('1. kg to g
    2. g to kg
    请选择:')
        weight = int(input('请输入重量:'))
        print(weight_conversion(weight, option))

    方法2:

    wg = int(input("请输入基础单位克(g)!!!
    "))
    ​
    wkg = wg / 1000print("化为千克为: %f(kg)" % wkg)

     

    【基础题2】:设计一个求直角三角形斜边长的函数,比如直角边长分别为3和4,输出结果为:The right triangle third side's length is 5.0

    方法1:

    import math
    ​
    ​
    def hypotenuse(a, b):
        '''
        :param a: 直角边
        :param b: 直角边
        :return: 斜边长
        '''
        return math.sqrt(a ** 2 + b ** 2)
    ​
    ​
    if __name__ == '__main__':
        a = int(input("请输入一条直角边:"))
        b = int(input("请输入另一条直角边:"))
        print("The right triangle third side's length is", hypotenuse(a, b))

    方法2:

    import math
    print(".."*16)
    ​
    x = int(input("请输入直角三角形的一条直角边的边长:
    "))
    y = int(input("请输入另一条直角边的边长: 
    "))
    ​
    z = math.sqrt(x*x + y*y)
    print(".."*16)
    print("直角三角形的斜边长为:{}".format(z))

     

    【提高题】:打印出杨辉三角形(实现根据键盘输入数字打印出相应数量的行,比如,输入10,则打印出 10 行)

    方法1:

     

    lines = int(input("请输入打印行数:"))
    out_list, process_list = [1], [1]
    if lines == 1:
        print('{}'.format(' '.join(list(map(str, out_list)))))
    else:
        for j in range(lines):  # 行数
            print('{}'.format(' '.join(list(map(str, out_list)))))
            for i in range(1, j + 2):  # 下一行每行个数
                if i > len(out_list) - 1:
                    process_list.append(1)
                else:
                    process_list.append(out_list[i - 1] + out_list[i])
            out_list = process_list[:]
            process_list = [1]

    方法2:

    import numpy as np
    ​
    ​
    def get_triangle():
        row = np.array([1])
        yield row
        margin_array = np.array([0])
        while True:
            next_row = np.concatenate((margin_array, row)) + np.concatenate((row, margin_array))
            yield list(next_row)
            row = next_row
    ​
    ​
    triangle = get_triangle()
    for i in range(10):
        print(f"row {i+1}: ", triangle.__next__())

     

     

  • 相关阅读:
    无序数组求第K大/第K小的数
    [洛谷][二分搜索]进击的奶牛
    [015]向下类型转换和向上类型转换
    [014]析构函数为虚函数的注意事项
    [013]函数重载--int*和void*的匹配优先级
    [012]链表笔记--在链表中插入一个节点
    [011]链表笔记--删除一个链表节点
    [002]链表笔记--编程实现一个单链表的创建/测长/打印
    [C++]对象的销毁机制
    [011]默认实参
  • 原文地址:https://www.cnblogs.com/ElegantSmile/p/10926663.html
Copyright © 2011-2022 走看看