1.分段函数计算
输入x的值,计算y值,如果输入正确,输出y值
如果输入错误,输出“输入错误”
分段函数的数值,计算方式如下
y=
x x<500
1.5x 500≤x<1000
2x 1000≤x<2000
3x x≥2000
输入输出示例
输入 | 输出 | |
示例 1 | 200 600 1500 4000 A | 200 900 3000 12000 输入错误 |
n=input()
try:
x=int(n)
if x<500:
print(x)
elif x>=500 and x<1000:
print(1.5*x)
elif x>=1000 and x<2000:
print(2*x)
else :
print(3*x)
except ValueError:
print("输入错误")
2.使用循环打印出下列图形
0
11
222
3333
44444
55555
6666
777
88
9
for i in range(10):
if i<=4:
print(str(i)*(i+1))
else:
print(str(i)*(10-i))
3.蒙特卡洛法求出曲线y=x*x与x轴之间的面积
使用蒙特卡洛法求出曲线y=x*x与x轴之间在0-1范围内的面积
种子数为10
使用100000个点进行计算
结果保留3位小数
import random
random.seed(100)
hit = 1
for i in range(100000):
x,y = random.random(),random.random()
if y < x*x:
hit += 1
print("{:.3f}".format(hit/100000))
4.二分法求平方根
描述
设计一个用二分法计算一个大于或等于 1 的实数 n 的平方根的函数sqrt_binary(n),计算精度控制在计算结果的平方与输入的误差不大于1e-6。
注:初始区间取[0,n]
输入格式
输入一个实数 n(大于或等于1)
输出格式
第一行输出用自己设计的函数计算得到的平方根
第二行输出用math库开平方函数计算得到的平方根
示例
输入:5.0
输出:
2.2360679507255554
2.23606797749979
def Binsecond(n):
low,up = 0,n
while True:
mid = (low+up)/2
if abs(mid*mid-n)<1e-6:
return mid
elif mid*mid - n> 0:
up = mid
else:
low = mid
n = eval(input())
x = Binsecond(n)
print(x)
print(n**0.5)
"""
def sqrt_binary(num):
#补充你的代码
num = float(input())
# 补充你的代码
5.判断火车票座位
类型:流程控制
------
描述 火车时速在200以上的列车:座位号是以ABCDF五个字母为区分的,一般会把座席分为商务座、一等座、二等座。
商务座:座位布局“2+1”,一排有三个座位,其中AC是相连的,F是单独一个座位;
一等座:座位布局“2+2”,一排有四个座位,其中AC是相连的,DF是相连的。
二等座:座位布局“3+2”,一排有五个座位,其中ABC是相连的三个座位,DF是相连的两个座位,这些座位中A、F都是靠窗的座位。
用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口、中间还是过道。每个车厢座位排数是1-17,输入时不区分字母大小写。根据输入判定座位的位置,当输入的数据不是一个合法的座位号时,输出“座位号不存在”。
输入格式
输入一个数字和字母组合成的字符串
输出格式
'窗口'、'中间'、'过道' 或'座位号不存在'
示例 1
输入:12F
输出:窗口
示例 2
输入:2C
输出:过道
示例 3
输入:1ZZ
输出:座位号不存在
#用户输入一个数字和一个字母组成的座位号,根据字母判断是不是窗口的位置
#目前中国高铁窗口位置的字母是'A'和'F',过道位置是'C'和 'D',中间位置是'E'
#数字序号是1-17
s = input()
try:
if 2 <= len(s) < 4 and 1 <= int(s[:-1]) <= 17:
if s[-1] in ['A', 'a', 'F', 'f']:
print('窗口')
elif s[-1] in ['C', 'c', 'D', 'd']:
print('过道')
elif s[-1] in ['B', 'b']:
print('中间')
else:
print('座位号不存在')
else:
print('座位号不存在')
except:
print('座位号不存在')
6.计算圆周率
类型:流程控制
描述
根据下面的泰勒级数关系式,依次累加绝对值不小于阈值的项,求圆周率的值。
输入格式
在一行中给出小于1且大于0的阈值。
输出格式
输出满足阈值条件的近似圆周率,精确到小数点后6位。
示例
输入:0.000001
输出:3.141591
n=eval(input())
pi=k=0
f=1
while abs(1 / (2 * k + 1))>=n:
pi = pi + f * (1 / (2 * k + 1))
k+=1
f=-f
print("{:.6f}".format(4*pi))
7.找数字,做加法(升级版)
描述
使用两个 input() 函数,接收用户的两个输入字符串,每个字符串最多包含一个英文点号“.”,将每个字符串中的数字和点号找出,按顺序组成一个数字。将得到的两个数字求和并输出,如果用户输入的引文点号“.”超过1个,提示输入错误,具体内容参阅以下示例。
输入使用input(),不要增加额外的提示信息。
输入示例1:
ab3d4z8b
2t22abc1
输出示例1:
2569
输入示例2:
b3b2bb5a
t4t41td
输出示例2:
766
输入示例3:
ab3d.4z8b
2t2.2abc1
输出示例3:
25.69
输入示例4:
b.3b2bb5a
t4t4.1td
输出示例4:
44.425
输入示例5:
ab3.d4.z8b
2t22abc1
输出示例5:
输入错误
输入示例6:
b3b2bb5a
t4t.41.td
输出示例6:
输入错误
x1 = input()
x2 = input()
s1,s2 = '',''
if x1.count('.') >1 or x2.count('.')>1:
print('输入错误')
exit(0)
for i in x1:
# TODO: write code...
if '0'<=i<='9' or i=='.':
s1=s1+i
for i in x2:
# TODO: write code...
if '0'<=i<='9' or i=='.':
s2=s2+i
print(eval(s1)+eval(s2))
8.兔子繁殖问题
描述
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,用户输入一个月份数,计算并在一行内输出该月的兔子总对数以及前一个月与该月兔子数量的比值,比值结果保留小数点后3位,数字间用空格分隔。
输入
一个正整数
输出
在一行内输出两个数
输入输出示例
输入 | 输出 | |
示例 1 | 5 | 5 0.600 |
n = int(input())
# f0代表前两月兔子,f1代表前一个月兔子,f代表本月兔子。
f0, f1 = 1, 1
f = f0 + f1
i = 3
while i < n:
f0 = f1
f1 = f
f = f1 + f0
i += 1
print(f'{f} {f1/f:0.03f}')
9.身份证号校验
类型:字符串
描述
中国目前采用的是18位身份证号,其第7-10位数字是出生年,11-12位是出生月份,13-14是出生日期,第17位是性别,奇数为男性,偶数为女性,第18位是校验位。 如果身份证号码的其中一位填错了(包括最后一个校验位),则校验算法可以检测出来。如果身份证号的相邻2位填反了,则校验算法可以检测出来。校验规则如下:
- 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 2. 将这17位数字和系数相乘的结果相加。 3. 用加出来和除以11,看余数只可能是:0-1-2-3-4-5-6-7-8-9-10 分别对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2 4. 通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X(大写英文字母X)。如果余数是10,身份证的最后一位号码就是2。 用户输入一个身份证号,校验其是否是合法的身份证号码。
输入格式
一个18位身份证号,末位为数字或大写字母X
输出格式
'身份证号码校验为合法号码!' 或 '身份证校验位错误!'
示例 1
输入:220221197302286534
输出:身份证校验位错误!
示例 2
输入:220221197302296536
输出:身份证号码校验为合法号码!
ID = input()
coe = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] # 系数
sum = 0
for i in range(0, 17 ):
sum += int(ID[i]) * coe[i]
rem = sum % 11 # 余数
if ID[17] == 'X':
if rem == 2:
print('身份证号码校验为合法号码!')
else:
print('身份证校验位错误!')
elif (rem + int(ID[17])) % 11 == 1:
print('身份证号码校验为合法号码!')
else:
print('身份证校验位错误!')