《python》编程导论 第1/2/3/4章

前几章比较简单,本文纯粹是为了对基本概念做个记录,顺便码一下。

第三章

3.3 近似解和二分查找

3.3.1 平方根迭代近似解

x=25
epsilon = 0.01 
step = epsilon**2
numGuesses = 0
ans = 0
while abs(ans**2-x) >= epsilon and ans <= x:
    ans += step
    numGuesses += 1
print(f'numGuesses ={numGuesses}')
if abs(ans**2 - x) >= epsilon:
    print(f'Failed on square root of {x}')
else:
    print(f'{ans} is close to square root of {x}')

3.3.1 平方根二分查找近似解

x=25
epsilon = 0.01 
low = 0
high = max(1,x)
numGuesses = 0
ans = (high + low)/2
while abs(ans**2-x) >= epsilon:
    print(f'low = {low},high = {high}')
    numGuesses += 1
    if ans**2 < x:
        low = ans 
    else:
        high = ans
    ans = (high + low)/2
print(f'numGuesses = {numGuesses}')
print(f'{ans} is close to square root of {x}')

3.4 关于浮点数

浮点数都是高精度的近似值

x = 0
for i in range(10):
    x += 0.1
if x == 1:
    print(f'{x} = 1')
else:
    print(f'{x} is not 1.0')

3.5 牛顿-拉弗森法

求解多项式

epsilon = 0.01
k = 25
guess = k/2
while abs(guess*guess - k) >= epsilon:
    guess -= (((guess**2)-k)/(2*guess))
print(f'Square root of {k} is about {guess}')

4.2 规范(测试用例)

def findRoot(x,power,epsilon):
    '''二分法找平方根'''
    if x <0 and power%2==0:
        return None
    low = min(-1,x)
    high = max(1,x)
    ans = (high + low)/2
    while abs(ans**power-x) >= epsilon:
        if ans**power < x:
            low = ans 
        else:
            high = ans
        ans = (high + low)/2
    return ans

def testFindRoot():
    epsilon=0.0001
    
    for x in [0.25,-0.25,2,-2,8,-8]:
        for power in range(1,4):
            print(f'Testing x ={str(x)} and power = {power}')
            result=findRoot(x,power,epsilon)
            if result == None:
                print(' No root')
            else:
                print(f'  {result**power}~={x}')

4.3 递归

4.3.1 阶乘

def factR(n):
    if n == 1:
        return n
    else:
        return n*factR(n-1)

4.3.2 斐波那契

def fib(n):
    if n==0 or n==1:
        return 1
    else:
        return fib(n-1)+fib(n-2)
def testFib(n):
    for i in range(n+1):
        print(f'fib of {i} = {fib(i)}')

4.3.3 回文检测

def isPalindrome(s):
    '''回文检测,忽略点符号、空格、大小写'''
    def toChars(s):
        s=s.lower()
        letters=''
        for c in s:
            if c in 'abcdefghijklmnopqrestuvwxyz':
                letters=letters+c
        return letters
    
    def isPal(s):
        print(f'isPal called with {s}')
        if len(s)<=1:
            print('About to return Ture from base case')
        else:
            answer=s[0]==s[-1] and isPal(s[1:-1])
            print(f'About to return {answer} for {s}')
            return answer
        
    return isPal(toChars(s))

def testIsPalindrome():
    print('Try dogGod')
    print(isPalindrome('dogGod'))
    print('Try doGood')
    print(isPalindrome('doGood'))

4.4 全局变量

用于打印函数内循环变量,查找错误点,还是不错的

def fib(x):
    global numFibcalls
    
    numFibcalls+=1
    if x==0 or x==1:
        return 1
    else:
        return fib(x-1)+fib(x-2)
    
def testFib(n):
    for i in range(n+1):
        global numFibcalls
        numFibcalls=0
        print(f'fib of {i} = {fib(i)}')
        print(f'fib called {numFibcalls} times')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 计算机导论是大一必修的一门课程,本学期期末试题以Python为主要编程语言,考察学生对Python基础语法和算法的掌握情况。试题具体包含以下几个方面的内容: 1. Python基础语法:考察学生对Python的基础语法的掌握情况,包括变量、数据类型、运算符、条件语句、循环语句、函数、模块和文件操作等知识点。 2. 数据结构与算法:考察学生对常见的数据结构和算法的理解和应用,包括列表、元组、字典、集合、递归、排序、查找、树和图等知识点。 3. 编程实战:通过具体的编程实例,考察学生对Python编程和算法实现的能力。试题可能会要求学生完成一些基础的编程任务,如计算器、字符串操作、简单游戏等,同时也可能会考察学生对复杂算法问题的解决能力。 总之,本学期期末试题旨在全面考察学生对Python基础语法、数据结构和算法的掌握情况,同时也要求学生具备一定的编程实战经验和解决问题的能力。因此,学生需要充分准备,掌握好基础知识和编程技能,以达到更好的考试成绩。 ### 回答2: 本次计算机导论期末试题以Python语言为主要工具,旨在考查同学们对计算机基础知识和编程语言的应用能力。 试卷共分为两部分,第一部分是选择题,共20题。针对计算机导论中所学知识点,包括二进制数、CPU、存储介质、操作系统等,题目形式为单选、多选和判断题,难易程度适中。另外,还有两道Python基础知识的选择题,考察同学们对Python语言的掌握程度。 第二部分是编程题,共两道。第一道题目要求同学们编写一个Python程序,实现一个简单的猜数字游戏。具体要求是从1到100中随机生成一个整数,然后要求用户进行猜测,程序会对用户输入的数进行判断,并给出相应的提示语。该题考察同学们的Python编程能力和逻辑思维能力。 第二道题目要求同学们仿照所给代码,并结合已学知识自行实现,编写一个简单的文件压缩程序。该题考察同学们对文件操作、字符串编码和Python函数的掌握程度。 总体来说,本次计算机导论期末试题难度适中,考察的知识点涵盖了计算机基础知识和Python编程基础,同时也考察同学们的编程思维和创新能力,具有较高的教育和实际意义。 ### 回答3: 计算机导论是一门基础课程,它主要介绍了计算机的基本概念、发展历程、基本组成结构、信息表示和处理等内容。在这学期的课程中,以python为舟,从入门到掌握,我们领略到了计算机在不断发展与进步中所带来的魅力。 在期末考试中,我们需要掌握计算机的基本概念和算法,能够用python进行编程与实践。考试内容主要包括四个方面:计算机基础、python语言基础、python编程实践和实验题。其中计算机基础主要考查学生对计算机的基本概念和原理的掌握程度;python语言基础主要考查学生对python语言的基本语法和数据类型的理解和运用;python编程实践考查学生对平时作业和课堂实践的理解和应用能力;实验题是一道综合性较强的大题,需要学生综合应用所学知识进行编程实现。 总之,计算机导论python为舟的期末考试,是对我们在课程中学习和实践的考核,更是对我们对计算机基础和编程能力的综合评测。相信我们经过一学期的努力,已经具备了一定的计算机理论基础和编程技能,考试也是我们展示总结自己学习成果的一次机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值