我是靠谱客的博主 笨笨草莓,这篇文章主要介绍Python学习笔记(2):课后作业一,现在分享给大家,希望可以做个参考。

文章目录

        • 1. 正整数前n项和
        • 2. 计算分段函数
        • 3. 阶梯电价
        • 4. 特殊a串数列求和
        • 5. 求奇数和
        • 6. 交错序列前n项和
        • 7. 编写程序,输出下边三种图形
        • 8. 计数踢出问题
        • 9. 求完整数
        • 10. 求素数和
        • 11. 猴子吃桃问题
        • 12. 四则运算
        • 13. 求矩阵各行元素之和

1. 正整数前n项和

输入一个正整数n,求1+2+3+…+n的累加和

在VScode中写出代码如下:

复制代码
1
2
3
4
n = int(input('Input an int number: ')) print(sum(range(1,n + 1)))

运行输入结果:

复制代码
1
2
3
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中写出代码如下:

复制代码
1
2
3
4
5
6
7
x = float(input('A number please: ')) if x == 0: print('f(x) = 0') else: print('f({0:.1f}) = {1:.1f}'.format(x,1/x))

运行得:

复制代码
1
2
3
A number please: 2 f(2.0) = 0.5

3. 阶梯电价

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。

输入格式:
输入在一行中给出某用户的月用电量(单位:千瓦时)。

输出格式:
在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。

在VScode中写出代码如下:

复制代码
1
2
3
4
5
6
7
8
9
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!')

运行结果如下:

复制代码
1
2
3
4
5
6
7
8
9
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中写出代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
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))

运行结果如下:

复制代码
1
2
3
a and n please: 2 3 s = 246

5. 求奇数和

本题要求计算给定的一系列正整数中奇数的和。

输入格式:
输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。

输出格式:
在一行中输出正整数序列中奇数的和。

在VScode中写出代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
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)

运行结果如下:

复制代码
1
2
3
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中写出代码如下:

复制代码
1
2
3
4
5
6
7
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)

其输出结果如下:

复制代码
1
2
3
Please input an int number: 5 0.917

7. 编写程序,输出下边三种图形

嘿嘿嘿

在VScode中写出代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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!')

其输出为:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
* ** *** **** ***** * *** ***** ******* ********* * *** ***** *** * Done!

8. 计数踢出问题

有30⼈围成⼀圈,从1到30依次编号。每个人开始报数,报到9的自动离开。当有人离开时,后⼀个人开始重新从1报数,以此类推。求离开的前10人编号。

  由此,给出Python代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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人时的输出结果:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
请输入玩游戏的人数: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中写出代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
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 = ' ')

其运行结果如下:

复制代码
1
2
6 28 496

10. 求素数和

求100到1000内所有素数的和

在VScode中写出代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
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))

其运行结果:

复制代码
1
2
75067

11. 猴子吃桃问题

一只小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;第二天又吃了一半,再加上一个;后面每天都是这样吃。到第10天的时候,小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子。

在VScode中写出代码如下:

复制代码
1
2
3
4
5
6
7
p = 1 for i in range(1,10): p = (p + 1) * 2 print('第一天桃子的数量 = %d' % p)

其运行结果:

复制代码
1
2
第一天桃子的数量 = 1534

12. 四则运算

在一行中输入一个数字,在一行中输入一个四帜运算符(+,-,*,/),在一行中输入一个数字,在一行中输出运算结果(小数保留2位)

在VScode中写出代码如下:

复制代码
1
2
3
4
5
6
7
8
a = input('Input a number: ') b = input('Input a symbol: ') c = input('Input a number: ') d = a + b + c print(eval(d))

其运行结果如下:

复制代码
1
2
3
4
5
Input a number: 2 Input a symbol: * Input a number: 12 24

13. 求矩阵各行元素之和

本题要求编写程序,求一个给定的m×n矩阵各行元素之和。

输入格式:
输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。

输出格式:
每行输出对应矩阵行元素之和。

在VScode中写出代码如下:

复制代码
1
2
3
4
5
6
7
8
9
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]))

其运行结果如下:

复制代码
1
2
3
4
5
6
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)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部