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\n2. g to kg\n请选择:')
    weight = int(input('请输入重量:'))
    print(weight_conversion(weight, option))

 

方法2:

wg = int(input("请输入基础单位克(g)!!!\n"))
​
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("请输入直角三角形的一条直角边的边长:\n"))
y = int(input("请输入另一条直角边的边长: \n"))
​
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__())

 

 

 

转载于:https://www.cnblogs.com/ElegantSmile/p/10926663.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值