Python123 作业题答案
睡觉的巧克力 2024-07-08 09:35:02 阅读 62
制作不易,点个赞吧*/~
目录
第一章
世界,你好!
圆面积的计算 S
说句心里话 A
第二章
字符串逆序输出
格式化输出
计算矩形面积
温度转换 II
计一个重量转换程序
蟒蛇绘制 C
第三章
a除以b
2的n次方
表达式求值
阶乘
拆分数字
天天向上的力量 B
第三章2
字符替换
获取浮点数的整数部分和小数部分
英文字符串单词个数统计
获取月份字符串
判断闰年
三角形面积
第四章1
空气质量提醒
BMI指数计算
计算1+2+3+……+n的值
计算m到n的累加和
输出倒三角型
输入n,输出2*n-1行的菱形图形
第四章2
n到m之间所有奇数的和
输入数据n,使用while语句,求出1+2+3+...+n的和
使用while语句计算n到m的所有数据和
编写程序计算以下多个数据项相加的和
计算多项相加的和
输入一个数据,判断它是否是素数
第四章3
使用双重循环在屏幕上打印出矩阵
使用双重循环输出上三角九九乘法表
输出1-20之间(不包含1和20)的所有素数,每个数据占一行
百钱买百鸡问题
蒙特卡罗法求π值
第四章4
输入一个数据x
分别使用20个宽度右对齐格式
分段函数计算
在一行上输入三个边长,判断是否能构成三角形
计算 1 + 1/1! + 1/2! + 1/3! + … + 1/n
使用循环打印出下列图形
使用蒙特卡洛法求出曲线y=x*x与x轴之间在0-1范围内的面积
第五章 函数1
编写打印从n到m之间数据的函数
编写打印星号三角形函数
计算输入数据x,y之间所有数据的和
闰年判断函数
哥德巴赫猜想
第六章 组合数据类型1
去重排序
统计出现次数并排序
编写对列表进行统计的函数
第六章 组合数据类型2
矩阵加法
矩阵乘法
字典存储数据
斐波那契数列
比赛评分计算
第七章
程序设计题 寻找车辆
numpy基础
蒙特卡洛法求PI
1 PYTHON基础
根据身高体重,判断人的胖瘦
求1+2+...+n的和
字符串逆序输出
在屏幕上显示输出如图所示的文本字符串(提示:使用for循环)
2 内置数据类型、函数和类
二分法求平方根B
列表生成字典。
100以内素数之和。
第一章
世界,你好!
打印输出Hello World!是所有程序设计学习的第一个入门实例,采用Python语言输出这个实例的代码如下:
请使用Python语言输出这个例子的中文版本,向世界发出第一声问候吧!(注意区分中文全角和英文半角符号)
print("世界,你好!")
圆面积的计算 S
根据圆的半径计算圆面积,半径为25。请编写并运行如下代码:
radius = 25 #圆的半径是25
area = 3.1415 * radius * radius #根据公式计算圆的面积
print("{:.2f}".format(area)) #仅输出两位小数结果
《Python语言程序设计(第2版)》,第18页,微实例1.1
radius=25
area=3.1415*radius*radius
print("{:.2f}".format(area))
说句心里话 A
分两次从控制台接收用户的两个输入:第一个内容为"人名",第二个内容为"心里话"。
然后将这两个输入内容组成如下句型并输出出来:
(人名),我想对你说,(心里话)
此题目是AutoOJ(自动评阅)类型,请注意:
1. 输入使用input(""),不要增加提示信息
2. 输出与要求一致
name=input()
said=input()
print(name+",我想对你说,"+said)
第二章
字符串逆序输出
用户输入一个字符串,倒序输出。
str=input()
print(str[::-1])
格式化输出
用户输入一个小数,用format格式化输出,保留3位小数。
n=eval(input())
print('{:.3f}'.format(n))
计算矩形面积
用户输入矩形的长和宽,计算其面积并输出,结果四舍五入,保留2位小数。
a=eval(input())
b=eval(input())
print('{:.2f}'.format(a*b))
温度转换 II
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fabrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指摄氏度87.65度;
(3) 不考虑异常输入的问题,输出保留小数点后两位;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
_in=input()
n=float(_in[1:])
if(_in[0]=='C'):
res=n*1.8+32
print("F{:.2f}".format(res))
elif(_in[0]=='F'):
res=(n-32)/1.8
print("C{:.2f}".format(res))
计一个重量转换程序
参考温度转换实例编制一个重量转换程序,保留2位小数。
假定重量转换比值为:1千克(kg, 公斤)=2斤
# WeightConvert
# 1千克(kg, 公斤)=2斤
TempStr = input()
if TempStr[-1]=='克':
t=float(TempStr[:-2])
t=t*2
print('{:.2f}斤'.format(t))
# 判断是否属于斤,并执行转换
elif TempStr[-1]=='斤':
t=float(TempStr[:-1])
t=t/2
print('{:.2f}千克'.format(t))
# 输入错误时,提示信息
else:
print('输入错误')
蟒蛇绘制 C
下面给出了一个"蟒蛇绘制"实例,先按代码敲进去,运行查看效果,然后尝试对代码进行修改,使其发生变化。
上述代码的输出如下:
请修改上述代码,编写一个"蟒蛇绘制"扩展实例,要求:
(1) 与上述蟒蛇绘制的输出效果不同,输出效果不同可以是:颜色、长度、角度、姿态等。
(2) 有一定创意。
(3) 使用Python turtle库
<code>#DrawPython.py
import turtle as t
t.setup(650,650,200,200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i in range(4):
t.circle(40,80)
t.circle(-40,80)
t.circle(40,80/2)
t.fd(40)
t.circle(16,180)
t.fd(40*2/3)
t.right(180)
t.penup()
t.fd(-180)
t.pendown()
t.pensize(25)
t.pencolor("pink")
t.left(25)
t.circle(200,60)
t.circle(70,140)
t.right(90)
t.circle(70,140)
t.circle(200,60)
第三章
a除以b
计算a除以b,结果四舍五入,保留2位小数。
a=eval(input())
b=eval(input())
if b==0:
print("除零错误")
else:
print('{:.2f}'.format(a/b))
2的n次方
计算2的n次方,n由用户输入
n=eval(input())
res=1
for i in range(0,n):
res=res*2
print(res)
表达式求值
已经a,b,c的值分别为5,8和3,利用以下公式计算并输出x的值。
<code>import math
a=5
b=8
c=3
x=(-b+math.sqrt(b*b-4*a*c))/(2*a)
print(x)
阶乘
用户输入一个正整数,使用数学库,计算其阶乘
n=eval(input())
res=1
for i in range(1,n+1):
res=res*i
print(res)
拆分数字
输入任意一个三位整数,请用内置的数值运算操作符输出该数字的个位,十位和百位数字。结果逗号隔开同行输出
str1=str(abs(int(input())))
print(str1[2],str1[1],str1[0],sep=',')code>
天天向上的力量 B
一年365天,以第1天的能力值为基数,记为1.0。当好好学习时,能力值相比前一天提高N‰;当没有学习时,由于遗忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下来的能力值相差多少呢?其中,N的取值范围是1到10,N可以是小数。
获得用户输入N,计算每天努力和每天放任365天后的能力值及能力间比值,其中,能力值保留小数点后2位,能力间比值输出整数,输出结果间采用“逗号+空格”格式。
此题目是OJ题,使用input("")获得N。
n1=eval(input())
n=n1/1000
hard=1.00
lazy=1.00
for i in range(1,365):
hard=hard*(1+n)
lazy=lazy*(1-n)
neng=int(hard/lazy)
print('{:.2f}, {:.2f}, {:}'.format(hard,lazy,neng))
第三章2
字符替换
假设有段英文,其中有单独字母“P”被误写为“p”,请编写程序进行纠正。
strr=input()
for i in range(len(strr)):
if(strr[i]=='p'):
print(strr[i].upper(),end="")code>
else:
获取浮点数的整数部分和小数部分
要求用户输入一个小数,能够分别获取整数部分和小数部分,并输出
num1,num2=input().split('.')
print(f"整数{num1}小数{int(num2)}")
英文字符串单词个数统计
输入一个英文字符串,按照空格分割单词并统计单词个数
strr=input().split(" ")
print(len(strr))
获取月份字符串
输入一个1~12的数字,输出相应的月份,例如输入3,输出“三月份”
month="一二三四五六七八九十"code>
num=eval(input())
if num>10:
print("十{}月份".format(month[num-11]))
else:
print("{}月份".format(month[num-1]))
判断闰年
输入一个年份,判断是否是闰年
闰年判断标准如下,满足其下1个条件即可
1、能被4整除,但不能被100整除
2、能被400整除
year=eval(input())
if (year%4==0 and year%100!=0) or year%400==0:
print("{}年是闰年".format(year))
else:
print("{}年不是闰年".format(year))
三角形面积
输入三角形的三条边a、b、c,判断三条边是否能够构成三角形,如果能够构成三角形,则输出该三角形的面积,否则输出“不能构成三角形”。三角形的判断条件:任意两边之和大于第三边。面积公式如下:
,其中s=(a+b+c)/2
<code>a=eval(input())
b=eval(input())
c=eval(input())
if a+b>c and a+c>b and b+c>a:
s=(a+b+c)/2
area=(s*(s-a)*(s-b)*(s-c))**0.5
print("{:.1f}".format(area))
else:
print("不能构成三角形")
第四章1
空气质量提醒
根据键盘输入的PM值提示不同的信息
如果0<=PM<35 输出 “空气优”
如果35<=PM<75 输出 “空气良”
如果PM>=75 输出 “空气污染”
其他情况 输出 “错误输入”
pm=eval(input())
if pm>=75:
print("空气污染")
elif pm>=35:
print("空气良")
elif pm>=0:
print("空气优")
else:
print("错误输入")
BMI指数计算
BMI指数 = 体重 (kg) / 身高的平方 (m2)
计算方法见下表:
偏瘦
| <18.5
|
正常
| 18.5 ~ 24
|
偏胖
| 24 ~ 28
|
肥胖
| ≥28
|
height,weight=eval(input())
bmi=weight/(height**2)
print("BMI数值为:{:.2f}".format(bmi))
if bmi>=28:
print("肥胖")
elif bmi>=24:
print("偏胖")
elif bmi>=18.5:
print("正常")
else:
print("偏瘦")
计算1+2+3+……+n的值
n=eval(input())
sum=0
for i in range(0,n+1):
sum+=i
print(sum)
计算m到n的累加和
键盘输入整数m和n的值(其中m<n),计算并输出m+(m+1)+(m+2)+....+n的值。
m,n=eval(input())
sum=0
for i in range(m,n+1):
sum+=i
print("sum={}".format(sum))
输出倒三角型
用户输入数据n,输出n行的倒三角形
例如用户输入5
输出图形为
*********
*******
*****
***
*
其中第1行左侧没有空格,第2行左侧1个空格,第3行左侧1个空格,以此类推。
n=eval(input())
for i in range (n):
for j in range(0,i):
print(" ",end="")code>
for k in range(i,2*n-1-i):
if i<n-1:
print()
输入n,输出2*n-1行的菱形图形
例如:输入4,输出
*
***
*****
*******
*****
***
*
n=eval(input())
for i in range(n-1):
for j in range(0,n-i-1):
print(" ",end="")code>
for k in range(n-i-1,n+i):
print()
for i in range (n):
for j in range(0,i):
print(" ",end="")code>
for k in range(i,2*n-1-i):
if i<n-1:
print()
第四章2
n到m之间所有奇数的和
输入两个奇数n、m
使用for语句编写循环,计算从n到m之间所有奇数的和
m,n=eval(input())
sum=0
for i in range(m,n+1):
if i%2!=0:
sum+=i
print(sum)
输入数据n,使用while语句,求出1+2+3+...+n的和
n=eval(input())
sum=0
i=1
while i<=n:
sum+=i;
i+=1
print(sum)
使用while语句计算n到m的所有数据和
n,m=eval(input())
sum=0
while n<=m:
sum+=n
n+=1
print(sum)
编写程序计算以下多个数据项相加的和
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …
当其中的某一项小于10的-5次方时,就停止运算
输出强制保留4位小数的结果
i=1
sum=0
while 1/i>=10**-5:
sum+=1/i
i*=2
print("{:.4f}".format(sum))
计算多项相加的和
1/1 + 1/2 + 1/4 + 1/7 + 1/11 + 1/16 + 1/22 …
当其中的项小于10的-5次方时,
停止计算输出强制保留4位小数
i=1
cnt=1
sum=0
while 1/i>=10**-5:
sum+=1/i
i+=cnt
cnt+=1
print("{:.4f}".format(sum))
输入一个数据,判断它是否是素数
如果是,则输出“是素数”,否则输出“不是素数”
n=eval(input())
for i in range(2,n):
if n%i==0:
print("不是素数")
break
else:
print("是素数")
第四章3
使用双重循环在屏幕上打印出矩阵
每个数字以1个空格隔开
1 2 3
4 5 6
7 8 9
cnt=1
for i in range(3):
for j in range(3):
print(cnt,end=" ")code>
cnt+=1
print()
使用双重循环输出上三角九九乘法表
每个算式之间用 1个空格 隔开
for i in range(1,10):
for j in range(1,i+1):
print("{}*{}={}".format(i,j,i*j),end=" ")code>
print()
输出1-20之间(不包含1和20)的所有素数,每个数据占一行
def isSu(n):
for i in range(2,n):
if n%i==0:
return 0
else:
return 1
def main():
for i in range(2,20):
if isSu(i):
print(i)
main()
百钱买百鸡问题
使用100元钱,买100只鸡;
其中公鸡5元一只,母鸡3元一只,小鸡1元钱3只
输出有多少种购买方式
请使用双重循环来完成该题,每种鸡可以为0只
money=100
print("公鸡 母鸡 小鸡")
for i in range(20):
for j in range(33):
z=100-i-j
if(5*i+3*j+z*1/3==100):
print("{} {} {}".format(i,j,z))
蒙特卡罗法求π值
蒙特卡罗方法适合于根据概率求出图形的面积
根据两个图形的面积求出某一个未知数据量
请随机产生10000个点,判断是否落到一个半径为1的1/4个圆内,
通过概率与一个边长为1的正方形的面积比值
算出π的数值,要求输出强制保留两位小数
import random
random.seed(180)
hit = 0.0 #表示随机点在圆内的次数
#请将代码补充完整
for i in range(10000):
x=random.random()
y=random.random()
if x**2+y**2<1:
hit+=1.0
pi=4*hit/10000.0
print("{:.2f}".format(pi))
第四章4
输入一个数据x
当x为数字时,输出x的平方,否则提示“输入错误”。
x=input()
try:
a=int(x)
print(a**2)
except ValueError:
print("输入错误")
分别使用20个宽度右对齐格式
在四行上输出输入数据的二进制、十进制、科学计数法、两位小数
如果输入的不是数据,则输出“输入错误”
try:
n=int(input())
print(bin(n)[2:].rjust(20))
print(str(n).rjust(20))
print("%e".rjust(22-len(format('%e' % n))) %n)
print("{:.2f}".format(n).rjust(20))
except ValueError:
print("输入错误")
分段函数计算
输入x的值,计算y值,如果输入正确,输出y值
如果输入错误,输出“输入错误”
分段函数的数值,计算方式如下
y=
x x<500
1.5x 500≤x<1000
2x 1000≤x<2000
3x x≥2000
x=input()
try:
a=int(x)
if a<500:
print(a)
elif a<1000:
print(1.5*a)
elif a<2000:
print(2*a)
else:
print(3*a)
except ValueError:
print("输入错误")
在一行上输入三个边长,判断是否能构成三角形
若能构成三角形,则判断该三角形是“等边三角型“、“等腰三角型“还是“一般三角形“
否则输出“不能构成三角形”。
a,b,c=eval(input())
if a==b and b==c:
print("等边三角形")
elif a==b or b==c or a==c:
print("等腰三角形")
elif a+b>c and b+c>a and a+c>b:
print("一般三角形")
else:
print("不能构成三角形")
计算 1 + 1/1! + 1/2! + 1/3! + … + 1/n
精度为小数点后6位(即某一项 小于 0.000001就停止运算)
结果输出5位小数
import random
hit=0.0
random.seed(10)
for i in range(1,100001):
x,y=random.random(),random.random()
if y<=x*x:
hit+=1
area=hit/100000
print("{:.3f}".format(area))
使用循环打印出下列图形
0
11
222
3333
44444
55555
6666
777
88
9
for i in range(5):
print(str(i)*(i+1))
for i in range(5,10):
print(str(i)*(10-i))
使用蒙特卡洛法求出曲线y=x*x与x轴之间在0-1范围内的面积
种子数为10
使用100000个点进行计算
结果保留3位小数
import random
hit=0.0
random.seed(10)
for i in range(1,100001):
x,y=random.random(),random.random()
if y<=x*x:
hit+=1
area=hit/100000
print("{:.3f}".format(area))
第五章 函数1
编写打印从n到m之间数据的函数
要求:
函数名为PrintData(x,y)
打印的数据在一行上显示,每个数据以空格分开,打印后不换行
x,y=eval(input())
def PrintData(x,y):
for i in range(x,y+1):
print(i,end=' ')code>
PrintData(x,y)
编写打印星号三角形函数
使用该函数,传入数据2、3、4打印出如下圣诞树图形
*
***
*
***
*****
*
***
*****
*******
def santa(n):
for i in range(1,n+1):
print(' '*(4-i)+'*'*(2*i-1))
#上面的4-i可以根据数据进行修改
santa(2)
santa(3)
santa(4)
计算输入数据x,y之间所有数据的和
编写计算从n到m和的函数
函数名为sum(n,m)
函数返回值为n到m所有数据的和
使用该函数计算输入数据x,y之间所有数据的和
x,y=eval(input())
def sum(n,m):
sum=0;
for i in range(n,m+1):
sum+=i
print(sum)
sum(x,y)
闰年判断函数
将判断闰年封装为函数,如果是闰年,函数输出True,否则输出False.
使用该函数输出2010-2020年之间所有闰年
for year in range(2010,2021):
if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
print(year)
else:
pass
哥德巴赫猜想
哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个素数之和。
请输出6-20之间所有偶数的所有拆分结果。
def isSu(n):
for i in range(2,n):
if n%i==0: return 0
else: return 1
def PrintTreeSu(n):
for i in range(2,n-1):
if isSu(i) and isSu(n-i):
print("{}={}+{}".format(n,i,n-i))
for j in range(6,21):
if j%2==0:
PrintTreeSu(j)
第六章 组合数据类型1
去重排序
程序中已有1个列表["p","p","y","y","k","k","j","z"]
请编写程序,去掉列表中重复的内容,排序后,打印出来.
ls=["p","p","y","y","k","k","j","z"]
result=[]
for i in ls:
if i not in result:
result.append(i)
result.sort()
for j in result:
print(j,end=" ")code>
统计出现次数并排序
已有一个列表.A."B."B."C."C.
统计多个数据在列表中出现的次数。
输出按照 A B C的顺序输出(需要排序)
ls=["A","B","B","C","C"]
d=dict()
for i in ls:
if d.get(i):
d[i]+=1
else:
d[i]=1
d=sorted(list(d.items()),key=lambda e:e[0])
for i in d:
print('{} : {}'.format(i[0],i[1]))
编写对列表进行统计的函数
接收用户输入的多个数据,直到输入为空时停止
将用户输入的一组数据放入列表中存放
编写对列表进行统计的函数
包括:
计算列表的平均数,并返回数据
计算列表中的方差,并返回数据
计算列表中的中位数,并返回数据
使用这些函数和python自带的len()函数输出
1 列表中数据的个数
2 列表数据和和
3 列表数据的平均值
4 列表数据的方差
5 列表的中位数
def getNum():
ls=[]
while True:
num=input()
if num:
ls.append(eval(num))
else:
break
return ls
def avg(ls):
s=0
for i in ls:
s+=i
return s/len(ls)
def dev(ls):
a=avg(ls)
s=0
for i in ls:
s+=(i-a)**2
return s/len(ls)
def median(ls):
ls.sort()
if len(ls)%2==0:
return (ls[len(ls)//2]+ls[len(ls)//2]-1)/2
else:
return ls[len(ls)//2]
ls=getNum()
print("数量",len(ls))
print("和",sum(ls))
print("平均值",avg(ls))
print("方差",dev(ls))
print("中位数",median(ls))
第六章 组合数据类型2
矩阵加法
新建两个矩阵A和B,两个矩阵的数据为
矩阵A的数据
1,1,1
2,2,2
3,3,3
矩阵B的数据
1,0,0
0,1,0
0,0,1
计算两个矩阵的和,并输出计算结果
A = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3]
]
B = [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
]
ls = []
for i in range(len(A)):
ls.append([(A[i][j] + B[i][j]) for j in range(len(A[i]))])
print(ls)
矩阵乘法
新建两个矩阵A和B,两个矩阵的数据为
矩阵A的数据
1,1,1
2,2,2
3,3,3
矩阵B的数据
1,0,0
0,1,0
0,0,1
计算两个矩阵的乘法,并输出计算结果
<code>A = [
[1, 1, 1],
[2, 2, 2], [3, 3, 3]
]
B = [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
]
C = []
for i in range(len(A)):
ls = []
for j in range(len(B)):
s = 0
for k in range(len(A[i])):
s += A[i][k]*B[k][j]
ls.append(s)
C.append(ls)
for i in range(len(C)):
for j in range(len(C[i])):
print()
字典存储数据
某次跳高比赛,一共5人参加,小明成绩为1.8米,小红成绩为1.58米,小力成绩为1.9米
新建一个字典dic,将这些数据存放到字典中。
该字典供其后的用户查询使用
假设用户输入 小明,则显示小明的成绩 1.8m
d = dict()
for i in range(5):
name = input()
h = input()
d[name] = h
name = input()
print('{} {}'.format(name, d[name]))
斐波那契数列
描述
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。数学上,斐波那契数列以递归的形式进行定义:
F[0]=0
F[1]=1
F[n]=F[n−1]+F[n−2] 即 后一项等于前两项的和
编写程序计算此数列的前N个值(N由用户输入得到),并按顺序存入一个列表。
输出整个列表的数据
ls = []
a = 0
b = 1
n = eval(input())
for i in range(n):
ls.append(a)
a, b = b, a+b
print(ls)
比赛评分计算
学校举办新生歌手大赛,每个选手的成绩由评委的评分去掉一个最高分和一个最低分剩下评分的平均值得到。
编写程序实现:输入第一行指定分数个数n,从第二行开始每行输入一个评委的得分(共n行),计算选手的成绩(保留1位小数),并输出。
#输入指定的n
n = eval(input())
#指定输入n个数,换行间隔
ls = []
for i in range(n):
ls.append(eval(input()))
ls.sort()
#计算去掉一个最高分和最低分的平均值
ls = ls[1:-1]
#输出最后得分
avg = sum(ls)/len(ls)
print('该歌手最终成绩为{:.1f}'.format(avg))
第七章
程序设计题 寻找车辆
a. car_data.txt”文件是以英文逗号分隔的数据文本文件,以gbk编码格式保存,记录了某出租汽车公司部分车辆某日0:00~23:00的车辆位置,无标题行。对应列分别是时间、车牌号、北纬、东经。部分数据如下所示。
0:00,沪NX2119,31.2740300000,121.2837400000
1:00,沪NX2119,31.2743250000,121.2829950000
2:00,沪NX2119,31.2739760000,121.2831140000
3:00,沪NX2119,31.2739270000,121.2824720000
4:00,沪NX2119,31.2741350000,121.2824490000
5:00,沪NX2119,31.2737610000,121.2816800000
6:00,沪NX2119,31.2739460000,121.2819860000
7:00,沪NX2119,31.2743250000,121.2823400000
8:00,沪NX2119,31.2739650000,121.2816280000
9:00,沪NX2119,31.2739050000,121.2811540000
b. 因协助查找该日发生在2:00,北纬31.30线以北的案件(大于该北纬值),请编写程序,找到并打印符合该位置条件的该出租车公司的车辆信息。运行结果如下所示。
时间:2:00 车牌:沪NX2820 北纬:31.3106870000 东经:121.2478700000
时间:2:00 车牌:沪NX2593 北纬:31.3037140000 东经:121.3286180000
时间:2:00 车牌:沪NX7730 北纬:31.3080970000 东经:121.2389760000
时间:2:00 车牌:沪NX9279 北纬:31.3012770000 东经:121.3209020000
f= open("car_data.txt",encoding="gbk")code>
content=f.readlines()
i=1
for t in content:
if t[0:4] in ["2:00"] and float(t[13:26])>31.30:
print("时间:%s 车牌:%s 北纬:%s 东经:%s"%(t[0:4],t[5:12],t[13:26],t[27:]),end="")code>
i+=1
f.close()
numpy基础
蒙特卡洛法求PI
描述
如下图所示,正方形边长为1,圆的圆心为O(0,0),请采用蒙特卡洛法求PI(保留2位小数)。
<code>import numpy as np
np.random.seed(100)
# 请补充代码
import numpy as np
np.random.seed(100)
# 请补充代码
m=100000
n=0.0
for i in range(m):
x,y=np.random.rand(),np.random.rand()
dist=pow(x**2+y**2,0.5)
if(dist<=1.0):
n+=1
pi=4*(n/m)
print("{:.2f}".format(pi))
1 PYTHON基础
根据身高体重,判断人的胖瘦
通过身高和体重,判断一个人的胖瘦。国际上一般采用BMI体重指数,计算公式为BMI = 体重 / 身高2(保留小数点后1位),参考标准如下:
提示:请输入用英文逗号分隔的身高(米),体重(公斤)。
<code>my_input=eval(input())
height=my_input[0]
weight=my_input[1]
BMI=weight/(height*height)
if BMI<18.5:
str='偏轻'code>
elif BMI<=25:
str='适中'code>
elif BMI<=35:
str='偏重'code>
else:
str='肥胖'code>
print("BMI={:.1f},您的体重{}!".format(BMI,str))
求1+2+...+n的和
输入n,输出1+2+...+n的和
n=eval(input())
sum=0
for i in range(1,n+1):
sum+=i;
print(sum)
字符串逆序输出
用户输入一个字符串,倒序输出。
str=input()
print(str[::-1])
在屏幕上显示输出如图所示的文本字符串(提示:使用for循环)
scale = 10
print("执行开始".center(15,'-'))
for i in range(scale+1):
# 补充代码
<code>scale = 10
print("执行开始".center(15,'-'))
for i in range(scale+1):
num=(i/scale)*100
a='*'*icode>
b='.'*(10-i)code>
print("{:^3.0f}%[{}->{}]".format(num,a,b))
2 内置数据类型、函数和类
二分法求平方根B
设计一个用二分法计算一个大于或等于 0 的实数 n 的平方根的函数sqrt_binary(n),实数 n和计算精度(abs(x*x - n) )控制由用户在同一行内输入,用逗号进行分隔,输出结果保留8位小数。
注:初始区间取[0,n+0.25]
import math
def sqrt_binary(n,e):
l=0
# n+=0.25
r=n+0.25
mid=(l+r)/2.0
while 1:
mid=(l+r)/2.0
if abs(mid**2-n)<=e: return mid
elif mid**2<n: l=mid
else: r=mid
num=eval(input())
print('{:.8f}'.format(sqrt_binary(num[0],num[1])))
print('{:.8f}'.format(math.sqrt(num[0])))
列表生成字典。
补充代码,实现由列表生成字典。
num = ['001','002','003','004']
name = ['赵一','钱二','孙三','李四']
dict_1 = {}
# 请补充代码
num = ['001','002','003','004']
name = ['赵一','钱二','孙三','李四']
dict_1 = {}
for key,value in zip(num,name):
dict_1[key]=value
print(dict_1)
100以内素数之和。
素数是指在大于1的自然数中,除了1和它本身,不再能被其他数整除的自然数。编程找出n以内的素数,统计其数量,并计算100以内素数之和。
n=eval(input())
cnt=0
sum=0
for i in range(2,n+1):
for j in range(2,i):
if i%j==0:
break
else:
sum+=i
cnt+=1
print("{}以内共有{}个素数,其和为{}".format(n,cnt,sum))
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。