python基础知识练习1

1.要求:输入A、B、C获得方程的解。
在这里插入图片描述
分析:通过input函数接收A,B,C的值。通过公式计算出detal的值,再根据条件进行判断,输出所需要的值:

def args_input():
    try:
        A = float(input('请输入A的值:'))
        B = float(input('请输入B的值:'))
        C = float(input('请输入C的值:'))
        return A, B, C
    except:
        print('请输入正确的数据类型')
        return args_input()


def get_delta(A, B, C):
    return B ** 2 - 4 * A * C


def solve():
    A, B, C = args_input()
    delta = get_delta(A, B, C)
    if delta < 0:
        print('该方程无解')
    elif delta == 0:
        x = B / (-2 * A)
        print('x=', x)
    else:
        # 计算x1 x2的值
        x1 = (B + pow(delta, 0.5)) / (-2 * A)
        x2 = (B - pow(delta, 0.5)) / (-2 * A)
        print('x1=', x1)
        print('x2=', x2)


def main():
    solve()


if __name__ == '__main__':
    main()

2.第n(n>=1)个人的年龄是多少?请编写函数解答
在这里插入图片描述
分析;可以从后往前推,采用函数递归的方式实现

def age_guess(n):
    if n == 1:
        return 10
    else:
        return age_guess(n-1)+2


print(age_guess(5))

3.a=”abbbbbccc”,使用正则表达式匹配为abccc,不管有多少b,就出现一次b。
分析:是要把‘bbbbb’换成‘b’,可以使用re.sub(pattern,repel,string)。
方法一

import re

a = 'abbbccc'
# ret = re.sub(正则,要替换的部分,字符串)
ret = re.sub(r'[b]+', 'b', a)
print(ret)

方法二

import re
regex = re.compile(r'[b]+')
d = regex.sub('b', a)
print(d)

4.默写一个通用装饰器

def set_func(func):
    def call_func(*args, **kwargs):
        ret = func(*args, **kwargs)
        return ret

    return call_func

5.当在浏览器输入www.baidu.com时候,返回页面的过程中都发生了什么?请简要写出步骤。

1.浏览器向DNS获取web服务器www.baidu.com的IP地址:115.239.210.27。
2.浏览器与IP地址为115.239.210.27的服务器进行tcp连接,端口号为443。
3.浏览器执行HTTP协议,发送GET命令,请求读取该文件。
4.www.baidun.com服务器返回该文件到客户端。
5.释放TCP连接。
6.浏览器解释该文件内容,并显示文件表示的页面

6.编写一个函数,输入一个字符串,返回字符串的倒序结果和字符长度。
方法一

def trans_str():
    my_str = input("请输入要逆序的字符串")
    a = list()
    for var in my_str:
        a.append(var)
    a.reverse()
    b = ''.join(a)
    print(b)
trans_str()

方法二

def trans_str():
    my_str = input("请输入要逆序的字符串")
    my_str = my_str[::-1]
    print(my_str)
    trans_str()
posted @ 2019-05-19 22:06  梦途的测开笔记  阅读(184)  评论(0编辑  收藏  举报