计算机导论课作业 05(基于Python)

1、(10 points)《编程导论》 习题3.1. 假设起始res=0。

def add(a,b):
    res = 0
    a = a * b
    res = a+b
    print("最终结果为:",res)
add(2,3)

5、(10 points)《编程导论》 习题3.6.

import time

s="1"*1000000+"0"*1000



def removeall2(s,x):
    start = time.clock()
    i = 0
    while i <len(s):
        if s[i] == x:
            s = s[:i]+s[i+1:]
        else:
            i += 1
    elapsed = time.clock() - start
    print(elapsed)
    return s

s = removeall2(s,'0')
print(len(s))

6、(20 points)
书本3.4.2中的第二部分:使用三种不同方法删除列表元素的执行时间,现在我们要删除的是字符串的元素。请同学分析三种方法的执行时间和优劣。
首先完成一个函数remove(s.x):删除字符串s中第一次出现的x。
def remove(s,x):
for i in range(len(s)):
if s[i]==x: return(s[:i]+s[i+1:])
return (s)
仿照书本的三种方法,完成removeall(s.x)函数:返回一个字符串是s删除所有出现的x,做实验测试执行时间:
s=“1”*1000000+“0”*1000
//时间开始
a=removeall(s,“0”)
//时间结束
print (len(a)) //不要直接打印a, 因为a太长了

def removeall3(s,x):
    start = time.clock()
    a=""
    i = 0
    for i in range(len(s)):
        if s[i] != x:
            a = a+s[i]
        
    elapsed = time.clock() - start
    print(elapsed)
    return a

s = removeall3(s,'0')
print(len(s))

7、(10 points)《编程导论》 习题3.14

def sum(L):
    mysum = 0
    i = len(L)-1
    while i >= 0:
        if L[i]%2==0:
            mysum += L[i]
        i -= 1
    return mysum
L=[2,2,3,4,5]
mysum = sum(L)
print(L,mysum)

9、(10 points)《编程导论》 习题3.16

L =["%d * %d = %d"%(x,y,x*y)for x in range(1,10) for y in range (1,10)]
print(L)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值