python学习

复制代码
# -*- coding: utf-8 -*-

import math

'''
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)
帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
判断并打印结果:
'''
height = 1.75
weight = 80.5
bmi = weight / (height**2)
strResult = '严重肥胖'
if bmi < 18.5:
    strResult = '过轻'
elif bmi < 25:
    strResult = '正常'
elif bmi < 28:
    strResult = '过重'
elif bmi <= 32:
    strResult = '肥胖'
    
print(strResult)

s1 = 72
s2 = 85
r = (s2 - s1) / 72 * 100
print('提高了{0:.2f}分'.format(s2 - s1))
print('增长率%.2f%%' % r)

# list
L = [
    ['Apple', 'Google', 'Microsoft'],
    ['Java', 'Python', 'Ruby', 'PHP'],
    ['Adam', 'Bart', 'Lisa']
]

for eachlist in L:
    for item in eachlist:
        print(item)

print(L[-1][-1],'is learning',L[1][1])

'''
from learnPython import move
'''
def move(x, y, step, angle=0):
    for each in (x, y, step, angle):
        if not isinstance(each, (int, float)):
            raise TypeError("bad operand type for move(): '%s'" % str(each))

    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny
    
    
'''
请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:
ax2 + bx + c = 0 的两个解。
'''
def quadratic(a, b, c):
    for param in (a, b, c):
        if not isinstance(a, (int, float)):
            raise TypeError("bad operand type for quadratic(): '{0}'".format(str(param)))
    
    if a == 0:
        if b != 0:
            return (-c / b, None)
        else:
            if c == 0:
                return ('any', 'any')
            else:
                return (None, None)

    delta = b ** 2 - 4 * a * c
    if delta < 0:
        return (None, None)
    e = -b / (2 * a)
    d = math.sqrt(delta) / (2 * a)
    return (e+d, e-d)
    
# 测试:
print('quadratic(2, 3, 1) =', quadratic(2, 3, 1))
print('quadratic(1, 3, -4) =', quadratic(1, 3, -4))

if quadratic(2, 3, 1) != (-0.5, -1.0):
    print('测试失败')
elif quadratic(1, 3, -4) != (1.0, -4.0):
    print('测试失败')
else:
    print('测试成功')
复制代码

 

廖雪峰教程-函数

posted @   shankun  阅读(220)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
阅读排行:
· 感觉程序员要被 AI 淘汰了?学什么才有机会?
· MQTT协议发布和订阅的实现,一步步带你实现发布订阅服务。
· Dify开发必备:分享8个官方文档不曾解释的关键技巧
· 活动中台系统慢 SQL 治理实践
· “你觉得客户需要”是杀死TA的最后一根稻草 | IPD集成产品开发
点击右上角即可分享
微信分享提示