Python 作业 3.8-3.14

第1章-2
从键盘输入三个数到a,b,c中,按公式值输出.

难点: 输入三个数时时以空格分隔
解决方法: a,b,c=map(int,input().split())

第2章-2
计算分段函数[1]

难点: 保留1位小数。

解决方法: 格式化输出,即:
print(“f(%.1f) = %.1f” % (x, x)
其中,%代表说明的开始,.1代表小数点后保留1位,第3个%连接了格式化说明与后面的占位符(x,x)。

第2章-5
求奇数分之一序列前N项和
range()函数的区间

源代码:

n = int(input())
c = 1
a = 1
b = 1
flag = 1
s = 0
for index in range(1, n + 1):
    s = s + c
    a += 1
    b += 2
    flag = -flag
    c = flag * a / b
print("{:.3f}".format(s))

难点:以i遍历[m,n]区间。

易错点: range(begin,end) 函数是左闭右开区间,所以如果要遍历[m,n],则应写成:range(m,n+1)

注意:左闭右开区间的问题同样存在于for循环中。

第2章-6
求交错序列前N项和

难点:每一项符号交错排列。
易错点:
(1)初步思路是判断第i项是奇数还是偶数,然后再改变符号,但是使用if语句会增大程序的复杂度,解决方法是以sum记录当前所有项的和,每过一项改变一次flag的值:1或-1。

(2)第一次的思路是保存每一项的值到一个列表里面,但是列表的每个元素 不能直接用于数学运算并赋值给一个基本类型,所以应该使用sum记录当前所有项的和。

第2章-8
转换函数使用

难点:将任意n进制整数转化为10进制整数。
解决方法:
在数学上,
应将n进制整数x(n)的每一位数码乘每一位的权值。

在代码中,
提取“每一位”的方法是x(n)%10,具体可以采用 //,即向下取整

a,b=input().split(",")
a=int(a)
b=int(b)
s=0
i=0
while a>0:
    s=s+(a%10)*(b**i)
    i=i+1
    a=a//10
print(s)

第2章-11
求平方与倒数序列的部分和

难点: 非零返回的处理。
解决方法:
(1)在输入上,将 m,n=map(int,input()) 改为:
m,n=input().split()
m,n=eval(m),eval(n)

另外应注意,在Python2环境中,输入使用***raw_input()***,而在Python3环境中,输入使用 input()

(2)在格式化输出上,将***print(“sum=%.6f” % su)***改为
print(“sum = {:.6f}”.format(su))

第2章-14
求整数段和

源代码:

a, b = input().split()
a, b = eval(a), eval(b)
i = a
n = 0
s = 0

for i in range(a, b + 1):
    print("{:>5d}".format(i),end="")
    n = n + 1
    s = s + i
    if n == 5:
        print("\n", end="")
        n = 0
    elif i == b:
        print("\n", end="")
print("Sum =",s)

难点:
(1)左对齐与间隔字符。
(2)分行输出

解决方法:

(1)print("{:>5d}".format(i),end="") ,注意格式化输出语句中**{:>5d}**规定了间隔字符数。

(2)一方面,由于print()自动换行,使得每一行仅能输出一个数,所以应使用 print(,end = “”) 的形式,来在每一行输出连续输出数据,另一方面,使用变量n记录每一行已经输出了多少个数字,如果到5个,则换行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值