当前位置:网站首页>流程控制(上)
流程控制(上)
2022-07-25 14:59:00 【~文~】
大家好,我是Python领域的博主。
如果你是编程爱好者可以小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。
如果文章有什么错误的地方,请不吝赐教。
觉得博主文章写的还错的话,请三连支持一下博主哦
我一直坚信一句话:我相信努力一定会有回报,这个回报可能很慢,但请相信,只要你坚持下去一定会更好的。
系列专栏:
1.特殊数列求和
类型:流程控制
描述
用户输入一个小于10的正整数,求1 + 12 + 123 + 1234 + …… 的前n项的和,当输入大于或等于10时,输出“data error!”
输入格式
一个小于10的正整数
输出格式
数列的前 n 项和或“data error!”
示例
输入:5
输出:13715num=int(input())
sum=1
temp=1
for i in range(2,num+1):
temp=temp*10+i
sum=sum+temp
if num>=10:
print("data error!")
else:
print(sum)2.分数数列前n项和
描述
输入一个正整数 n, 计算并输出数列1、-1/2、2/3、-3/5、4/8、-5/12...的前n项和。
输入格式
输入一个正整数 n
输出格式
以浮点数形式输出数列前n项的和
示例
输入:2
输出:0.5n = int(input())
a, b = 1, 2
flag = -1
result = 1.0
for i in range(1, n):
result = result + flag * a / b
a, b = i + 1, a + b
flag = -flag
print(result)3.阶乘和数
描述
一个正整数如果等于组成它的各位数字的阶乘之和,则该正整数称为阶乘和数。例如正整数145,1!+4!+5!等于145,因此145就是一个阶乘和数。输入一个正整数,计算它的各位数字的阶乘之和,判断它是否是一个阶乘和数。当输入的数字为阶乘和数时,输出“YES”,否则输出“NO”。注意:输入的正整数的最高位不为0。
输入格式
一个正整数。
输出格式
输出字符串“YES”或“NO”
示例 1
输入:145
输出:YES
示例 2
输入:1400
输出:NOimport math
n=input()
sum=0
for i in n:
num=math.factorial(int(i))
sum=sum+num
if sum==int(n):
print("YES")
else:
print("NO")
'''import math
n = input()
s = sum(math.factorial(int(i)) for i in n) # 推导式
if int(n) == s:
print('YES')
else:
print('NO') '''4.计算圆周率
类型:流程控制
描述
根据下面的泰勒级数关系式,依次累加绝对值不小于阈值的项,求圆周率的值。

输入格式
在一行中给出小于1且大于0的阈值。
输出格式
输出满足阈值条件的近似圆周率,精确到小数点后6位。
示例
输入:0.000001
输出:3.141591n=eval(input())
pi4=k=0
f=1
s=0
while abs(1/(2*k+1))>=n:
pi4=pi4+f/(2*k+1)
k=k+1
f=-f
print("{:6f}".format(4*pi4)) 5.求e的近似值B
类型:流程控制
描述
自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。
本题要求用该公式计算e的近似值,若最后一项(1/n!)小于给定的阀值时,终止计算(该项不计入)。
输入格式
输入一个小于 1 的浮点数做为阈值
输出格式
输出满足阈值条件的近似 e,输出保留小数点后 8 位。
示例
输入:0.00000001
输出:2.71828183import math
threshold=float(input())
e=1
n=1
while True:
if 1/math.factorial(n)<threshold:
break
else:
e=e+1/math.factorial(n)
n=n+1
print("{:.8f}".format(e))6.二分法求函数的零点
类型:流程控制
描述
现有方程:f(x) = x5-15x4+85x3-225x2+274x-121, 已知f(x)在[1.5,2.4]区间单调下降,且在该区间f(x)==0有且只有一个根,用二分法求解该根。
输入格式
输入一个正整数n,当f(x)值小于10-n时认为函数值为0
输出格式
输出方程在[1.5,2.4]区间的根,精确到小数点后第6位
示例
输入:9
输出:1.849016def f(x):
return x ** 5 - 15 * x ** 4 + 85 * x ** 3 - 225 * x ** 2 + 274 * x - 121
def bisection_method(low, high):
while True:
mid = (low + high) / 2
if abs(f(mid)) < 1 * 10 ** -n:
return '{:.6f}'.format(mid)
elif f(mid) < 0:
high = mid
else:
low = mid
if __name__ == '__main__':
n = int(input())
Low, High = 1.5, 2.4
print(bisection_method(Low, High))7.高次方程求根
类型:流程控制
描述
有函数

已知f(1.5)>0,f(2.4)<0,且在[1.5,2.4]区间只且只有一个根,求该根(假定多项式值小于10-6时可近似为0)。要求四舍五入到小数点后6位
输入格式
无
输出格式
该方程在[1.5,2.4]区间的根
** 示例**
输出:x.xxxxxx
def f(x):
return x ** 5 - 15 * x ** 4 + 85 * x ** 3 - 225 * x ** 2 + 274 * x - 121
x1 = 1.5
x2 = 2.4
while abs(f((x1 + x2) / 2)) > 1e-6:
if f((x1 + x2)/2)> 0:
x1 = (x1 + x2) / 2
else:
x2= (x1 + x2) / 2
print("{:.6f}".format((x1+x2)/2))
8.计算函数曲线与x轴包围的面积
类型:流程控制
描述
计算函数曲线在区间(a,b)与x轴包围的面积,可将这个区域平行于y轴切分成相等宽度的小梯形,每个梯形的面积可近似求出,所有梯形面积的和就是函数曲线与x轴包围的面积,也就是函数在给定区间的积分值,dx越小,梯形近似度越高,计算结果越精确,也就是说区间切分段的越多,结果越精确。
参考下图,计算函数sin(x)在区间(a,b)与x轴包围的面积,a,b由用户输入,区间切分多少段也由用户输入。

输入格式
输入包括两行
第一行是由空格分隔的两个实数,代表积分区间(input().split()可把空格分隔的输入切分成两部分)
第二行是一个正整数,代表切分数量
输出格式
积分值,结果保留2位小数
示例
输入:
-3.14 3.14
1000
输出:
4.00
# 梯形的上底 abs(math.sin(x + i * dx),函数值可能为负,用abs()取其绝对值
# 梯形的下底 abs(math.sin(x + i * dx + dx)) ,函数值可能为负,用abs()取其绝对值
# 梯形的面积公式:(上底+下底)×高÷2, 用字母表示:S=(a+c)×h÷2
import math
a, b = map(float, input().split()) # 输入区间起点和终点
n = int(input()) # 输入区间切分数量
area = 0 # 面积初值
x = a # 设定起点x值
dx = abs(a - b) / n # 计算每个小区间的高度,即每个小梯形的高度
for i in range(n): # 遍历n个区间,计算每个小梯形面积并累加到一起
area = area + dx * (abs(math.sin(x + i * dx)) + abs(math.sin(x + i * dx + dx))) / 2
print("{:.2f}".format(area)) # 输出面积值
9.百分制成绩转换五分制(循环)
类型:流程控制
描述
编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于90且小于或等于100的输出为“A”,成绩大于或等于80且小于90的输出为“B”,成绩大于或等于70且小于80的输出为“C”,成绩大于或等于60且小于70的输出为“D”,成绩小于60的输出为“E”。输入数据不合法时输出“data error!”。用户可反复输入成绩进行转换,输入负数时输出“end”并结束程序
输入格式
每次输入一个浮点数,代表百分制成绩;反复输入,输入负数结束程序
输出格式
根据每一次的输入值分别输出A、B、C、D、E中的一个字母或"data error!"或"end"。输出end时程序结束。
示例
输入:
88
99
56
156
-5
输出:
B
A
E
data error!
endwhile True:
score = eval(input())
if score < 0:
print('end')
break
elif score > 100:
print('data error!')
elif score >= 90:
print('A')
elif score >= 80:
print('B')
elif score >= 70:
print('C')
elif score >= 60:
print('D')
else:
print('E')小编畅谈:
小编发布的作品都是适合初学者学习,如果你是初学者,可以和小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。如果觉得小编写的还不错,关注,点赞,收藏。如果有什么错误之处,请多多指教。我会虚心接受。如果有什么地方不懂,可以私信小编,我会第一时间回复您。
边栏推荐
- Heyuan City launched fire safety themed milk tea to boost fire prevention and control in summer
- 43 盒子模型
- 冈萨雷斯 数字图像处理 第一章绪论
- MySQL 45讲 | 06 全局锁和表锁 :给表加个字段怎么有这么多阻碍?
- Splice a field of the list set into a single string
- 32 use of chrome debugging tools
- [C题目]力扣206. 反转链表
- 44 Sina navigation, Xiaomi sidebar exercise
- The concept and operation rules of calculus of variations
- PHP 通过原生CURL实现非阻塞(并发)请求模式
猜你喜欢

"How to use" decorator mode

44 新浪导航 ,小米边栏 练习

45padding won't open the box

Unable to start web server when Nacos starts

The solution to the problem that the progress bar of ros2 installation connext RMW is stuck at 13%

44 Sina navigation, Xiaomi sidebar exercise

云安全技术发展综述

冈萨雷斯 数字图像处理 第一章绪论

GameFramework制作游戏(一)

51 single chip microcomputer learning notes (1)
随机推荐
45padding won't open the box
Software testing -- 1. Outline of software testing knowledge
"Ask every day" how locksupport realizes thread waiting and wakeup
[C topic] Li Kou 206. reverse the linked list
gson与fastjson
Awk from entry to earth (24) extract the IP of the instruction network card
Awk from getting started to digging in (23) awk built-in variables argc, argc -- command line parameter transfer
Melody + realsense d435i configuration and error resolution
PHP 通过原生CURL实现非阻塞(并发)请求模式
Client error: invalid param endpoint is blank
"How to use" decorator mode
SSM Advanced Integration
QObject源码剖析-d指针和q指针
awk从入门到入土(20)awk解析命令行参数
Is it safe for Guolian securities to buy shares and open an account?
The concept and operation rules of calculus of variations
spark参数调整调优
MySQL 45 talks about | 06 global locks and table locks: Why are there so many obstacles to adding a field to a table?
Browser based split screen reading
Educational codeforces round 132 (rated for Div. 2) C, d+ac automata
