python简单习题1

本文介绍了四个Python编程的基础习题,包括根据半径计算圆的直径、周长和面积,利用BMI指数判断肥胖,使用余弦定理计算三角形角度,以及获取并格式化当前系统时间。

简单的python习题1

1. 已知圆的半径,计算并输出圆的直径、周长及面积。

import math
r=5
p=math.pi
d=r*2
c=2*p*r
s=p*r*r
print('半径:',r,'|直径:',d,'|周长:',c,'|面积:',s)

半径: 5 |直径: 10 |周长: 31.41592653589793 |面积: 78.53981633974483

2. 已知身高和体重,根据某种模型(请百度)给出此人是否肥胖。

(网上查的BMI指数)

w=float(input('体重(kg):'))
h=float(input('身高(m):'))
BMI=w/(h*h)
print(w,h,BMI)
if BMI<18.5:
    print('偏瘦')
elif 18.5<BMI<24:
    print('正常')
elif 24<BMI<28:
    print('偏胖')
elif BMI>=28:
    print('肥胖')

体重(kg):80
身高(m):1.80
80.0 1.8 24.691358024691358
偏胖

3. 已知三角形三条边长,计算三角形各个角度。

cosθ=a2+b2−c22abcos θ = \frac{a^2+b^2-c^2}{2ab}cosθ=2aba2+b2c2(余弦定理)
math.acos() 反余弦函数,返回弧度
math.degrees() 已知弧度求角度
eval() 多输入,逗号相隔

a,b,c = eval(input('逗号隔开'))
cosangle1=(a*a+b*b-c*c)/(2*a*b)
cosangle2=(c*c+b*b-a*a)/(2*b*c)
cosangle3=(a*a+c*c-b*b)/(2*a*c)
print('ab夹角',math.degrees(math.acos(cosangle1)))
print('bc夹角',math.degrees(math.acos(cosangle2)))
print('ac夹角',math.degrees(math.acos(cosangle3)))
#print(cosangle1,cosangle2,cosangle3)

逗号隔开3,4,5
ab夹角 90.0
bc夹角 36.86989764584401
ac夹角 53.13010235415599

4. 获取当前系统时间,并按如下格式展示该时间:2020年2月3日 10:36:45 星期一

from datetime import datetime
year=datetime.now().year
month=datetime.now().month
day=datetime.now().day
time=datetime.now().time()
weekday=datetime.now().weekday()#.strftime('%A')
print(year,'年',month,'月',day,'日',time,'星期',weekday, sep='')

2020年3月12日13:20:19.571819星期3

:-)

<think> 我们有两个引用,但用户需要的是Python简单习题的源码。根据引用[1]和[2],它们分别提供了两个练习题:一个是求5个数的和与平均数,另一个是冒泡排序。 用户要求是“Python简单习题的源码”,因此我们可以提供这两个例子,因为它们都是简单的练习题。 注意:引用[1]中有一个while循环的例子,引用[2]中有一个冒泡排序的例子。 我们将分别展示这两个例子,给出简要说明。 </think>以下是两个Python简单习题的源码及分析,适合初学者练习基础语法: ### 1. 数字求和与平均值计算 ```python i = 1 sum = 0 while i <= 5: num = input('请输入第%d个数:' % i) # 格式化输入提示 a = int(num) # 转换为整数 sum += a # 累加 i += 1 # 计数器增加 print('和为:', sum) print('平均数为:', sum/5) # 计算平均值 ``` **功能分析**: 1. 使用`while`循环获取5个用户输入的数字 2. 通过`sum += a`实现累加求和 3. 最终计算输出总和与平均值 4. 格式化字符串`%d`动态显示当前输入序号[^1] ### 2. 冒泡排序算法 ```python def bubble_sort(arr): n = len(arr) for i in range(n): # 遍历所有元素 for j in range(0, n-i-1): # 每次循环减少已排序部分 if arr[j] > arr[j+1]: # 比较相邻元素 arr[j], arr[j+1] = arr[j+1], arr[j] # 位置交换 return arr # 测试示例 if __name__ == "__main__": test_arr = [64, 34, 25, 12, 22, 11, 90] print("排序前:", test_arr) print("排序后:", bubble_sort(test_arr)) ``` **算法原理**: 1. 双重循环遍历列,外层控制遍历轮数 2. 内层比较相邻元素,若前大于后则交换位置 3. 每轮将最大元素"冒泡"到末尾 4. 时间复杂度为$O(n^2)$,空间复杂度$O(1)$[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值