概述
文章目录
- 1. 正整数前n项和
- 2. 计算分段函数
- 3. 阶梯电价
- 4. 特殊a串数列求和
- 5. 求奇数和
- 6. 交错序列前n项和
- 7. 编写程序,输出下边三种图形
- 8. 计数踢出问题
- 9. 求完整数
- 10. 求素数和
- 11. 猴子吃桃问题
- 12. 四则运算
- 13. 求矩阵各行元素之和
1. 正整数前n项和
输入一个正整数n,求1+2+3+…+n的累加和
在VScode中写出代码如下:
n = int(input('Input an int number: '))
print(sum(range(1,n + 1)))
运行输入结果:
Input an int number: 100
5050
2. 计算分段函数
本题目要求计算分段函数f(x)的值:
y = f ( x ) = { 1 x , x ≠ 0 0 , x = 0 y = f(x) = left{begin{aligned} frac{1}{x},x neq 0 \ 0,x = 0 end{aligned} right. y=f(x)=⎩⎨⎧x1,x=00,x=0
要求在一行输入实数x,在一行按”f(x) = result“的格式输出,其中x与result都保留一位小数
在VScode中写出代码如下:
x = float(input('A number please: '))
if x == 0:
print('f(x) = 0')
else:
print('f({0:.1f}) = {1:.1f}'.format(x,1/x))
运行得:
A number please: 2
f(2.0) = 0.5
3. 阶梯电价
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。
输入格式:
输入在一行中给出某用户的月用电量(单位:千瓦时)。输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。
在VScode中写出代码如下:
p = float(input('Input how much power you used: '))
if 0 < p <= 50:
print('cost = {:.2f}'.format(p * 0.53))
elif p > 50:
print('cost = {:.2f}'.format(50 * 0.53 + (p - 50) * 0.58))
else:
print('Invalid input!')
运行结果如下:
Input how much power you used: 30
cost = 15.90
Input how much power you used: 70
cost = 38.10
Input how much power you used: -20
Invalid input!
4. 特殊a串数列求和
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
输入格式:
输入在一行中给出不超过9的正整数a和n。输出格式:
在一行中按照“s = 对应的和”的格式输出。
在VScode中写出代码如下:
a,n = list(input('a and n please: ').split())
n = int(n)
s = 0
for i in range(1,n+1):
s += int(a * i)
print('s = {}'.format(s))
运行结果如下:
a and n please: 2 3
s = 246
5. 求奇数和
本题要求计算给定的一系列正整数中奇数的和。
输入格式:
输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:
在一行中输出正整数序列中奇数的和。
在VScode中写出代码如下:
lst = list(map(int,input('Please input some numbers: ').split()))
n = len(lst)
s = 0
for i in range(0,n-1):
if lst[i] % 2 == 1:
s += lst[i]
else :
continue
print(s)
运行结果如下:
Please input some numbers: 8 7 4 3 70 5 6 101 -1
116
6. 交错序列前n项和
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。输出格式:
在一行中输出部分和的值,结果保留三位小数。
在VScode中写出代码如下:
n = int(input('Please input an int number: '))
s = 0
for i in range(1,n + 1):
s = s + (-1) ** (i + 1) * (i) / (2 * i - 1)
print('%.3f' % s)
其输出结果如下:
Please input an int number: 5
0.917
7. 编写程序,输出下边三种图形
在VScode中写出代码如下:
a = '*'
b = ' '
for i in range(1,6):
print(a * i)
print('')
for i in range(1,6):
print(b * (5 - i) + a * (2 * i - 1) + b * (5 - i))
print('')
for i in range(1,4):
print(b * (3 - i) + a * (2 * i - 1) + b * (3 - i))
for i in range(1,3):
print(b * i + a * (5 - 2 * i) + b * i)
print('nDone!')
其输出为:
*
**
***
****
*****
*
***
*****
*******
*********
*
***
*****
***
*
Done!
8. 计数踢出问题
有30⼈围成⼀圈,从1到30依次编号。每个人开始报数,报到9的自动离开。当有人离开时,后⼀个人开始重新从1报数,以此类推。求离开的前10人编号。
由此,给出Python代码如下:
people = int(input('请输入玩游戏的人数:'))
circle = list(range(1,people+1))
n = 1
i = 9
while n <= people:
while i <= len(circle) - 1:
circle_pop = circle.pop(i-1)
if n <= 10:
print('第 {0} 个离开的人编号为 {1}'.format(n,circle_pop))
if i == 0: # 千年虫
i += 1
n += 1
i += 8
else:
i -= len(circle)
此处,给出人数为30人时的输出结果:
请输入玩游戏的人数:30
第 1 个离开的人编号为 9
第 2 个离开的人编号为 18
第 3 个离开的人编号为 27
第 4 个离开的人编号为 6
第 5 个离开的人编号为 16
第 6 个离开的人编号为 26
第 7 个离开的人编号为 7
第 8 个离开的人编号为 19
第 9 个离开的人编号为 30
第 10 个离开的人编号为 12
9. 求完整数
问题描述
求某一范围内完数的个数。
如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而 6=1+2+3,因此6是“完数”。
在VScode中写出代码如下:
com = []
for i in range(1,1001):
cau = []
for j in range(1,i):
if i % j == 0:
cau.append(j)
if sum(cau) == i:
com.append(i)
for i in range(len(com)):
print(com[i],end = ' ')
其运行结果如下:
6 28 496
10. 求素数和
求100到1000内所有素数的和
在VScode中写出代码如下:
su = []
for i in range(100,1001):
cau = []
for j in range(1,i):
if i % j == 0:
cau.append(j)
if sum(cau) == 1:
su.append(i)
print(sum(su))
其运行结果:
75067
11. 猴子吃桃问题
一只小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;第二天又吃了一半,再加上一个;后面每天都是这样吃。到第10天的时候,小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子。
在VScode中写出代码如下:
p = 1
for i in range(1,10):
p = (p + 1) * 2
print('第一天桃子的数量 = %d' % p)
其运行结果:
第一天桃子的数量 = 1534
12. 四则运算
在一行中输入一个数字,在一行中输入一个四帜运算符(+,-,*,/),在一行中输入一个数字,在一行中输出运算结果(小数保留2位)
在VScode中写出代码如下:
a = input('Input a number: ')
b = input('Input a symbol: ')
c = input('Input a number: ')
d = a + b + c
print(eval(d))
其运行结果如下:
Input a number: 2
Input a symbol: *
Input a number: 12
24
13. 求矩阵各行元素之和
本题要求编写程序,求一个给定的m×n矩阵各行元素之和。
输入格式:
输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。输出格式:
每行输出对应矩阵行元素之和。
在VScode中写出代码如下:
r,c = map(int,input('Input the row and col quantity: ').split())
m = []
for i in range(1,r + 1):
m.append(list(map(int,input('Input the {} row's elements: '.format(i)).split())))
for i in range(len(m)):
print(sum(m[i]))
其运行结果如下:
Input the row and col quantity: 2 3
Input the 1 row's elements: 1 2 3
Input the 2 row's elements: 4 5 6
6
15
最后
以上就是笨笨草莓为你收集整理的Python学习笔记(2):课后作业一的全部内容,希望文章能够帮你解决Python学习笔记(2):课后作业一所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复