我是靠谱客的博主 笨笨草莓,最近开发中收集的这篇文章主要介绍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中写出代码如下:

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):课后作业一所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部