首页 > 编程语言 >实验4 函数与异常处理编程

实验4 函数与异常处理编程

时间:2023-05-22 19:22:47浏览次数:34  
标签:return 函数 sum 编程 源码 实验 print def

task1

实验源码:

print(sum)
sum = 42
print(sum)

def inc(n):
    sum = n+1
    print(sum)
    return sum

sum = inc(7) + inc(7)
print(sum)

实验结果:

问题回答:不是。line1中是Python的内置函数,line3是指lin2的全局变量sum,line7中是inc函数中的局部变量,line11中是指line10的全局变量

 task2-1:

实验源码:

def func1(a, b, c, d, e, f):
    return [a,b,c,d,e,f]
def func2(a, b, c,*, d, e, f):
    return [a,b,c,d,e,f]
def func3(a, b, c, /, d, e, f):
    return [a,b,c,d,e,f]
# func1调用:按位置传递、按参数传递都可以
print(func1(1,9,2,0,5,3))
print(func1(a=1, b=9, c=2, d=0, e=5, f=3))
print(func1(1,9,2, f=3, d=0, e=5))
# func2调用:d,e,f必须按关键字传递
print(func2(11, 99, 22, d=0, e=55, f=33))
print(func2(a=11, b=99, c=22, d=0, e=55, f=33))
# func3调用:a,b,c必须按位置传递
print(func3(111, 999, 222, 0, 555, 333))
print(func3(111, 999, 222, d=0, e=555, f=333))

实验结果:

问题回答:是的

task2-2:

实验源码

list1 = [1,9,8,4]
print(sorted(list1))
print(sorted(list1,reverse = True))
print(sorted(list1,True))

实验结果:

 task2-3:

实验源码:

def func(a, b, c, /, *, d, e, f):
    return([a,b,c,d,e,f])
print(func(1,2,3,d=4,e=5,f=6))

实验结果:

 task3:

实验源码:

def solve(a, b, c):
    '''
    求解一元二次方程, 返回方程的两个根

    :para: a,b,c: float 方程系数
    :return: tuple
    '''
    delta = b*b - 4*a*c
    delta_sqrt = abs(delta)**0.5
    p1 = -b/2/a
    p2 = delta_sqrt/2/a

    if delta >= 0:
        root1 = p1 + p2
        root2 = p1 - p2
    else:
        root1 = complex(p1, p2)
        root2 = complex(p1, -p2)

    return root1, root2


while True:
    try:
        t = input('输入一元二次方程系数a b c, 或者,输入#结束: ')
        if t == '#':
            print('结束计算,退出')
            break
        a, b, c = map(float, t.split())
        if a == 0:
            raise ValueError('a = 0, 不是一元二次方程')
    except ValueError as e:
        print(repr(e))
        print()
    except:
        print('有其它错误发生\n')
    else:
        root1, root2 = solve(a, b, c)
        print(f'root1 = {root1:.2f}, root2 = {root2:.2f}')
        print()

实验结果:

 task4:

实验源码:

def list_generator(x,y,s=1):
    l = []
    while x<=y:
        l.append(x)
        x = x+s
    return l

list1 = list_generator(-5, 5)
print(list1)

list2 = list_generator(-5, 5, 2)
print(list2)

list3 = list_generator(1, 5, 0.5)
print(list3)

实验结果:

 task5:

实验源码:

def is_prime(n):
    if n==2:
        return True
    else:
        for i in range(2,int(n**0.5)+1):
            if n%i==0:
                return False
        return True
for i in  range(4,21,2):
    for s in range(2,i):
        if is_prime(i-s):
            print(f'{i} = {s} +{i-s}')
            break

实验结果:

 task6:

实验源码:

 1 # 编码函数encoder()定义
 2 def encoder(a):
 3     c = ''
 4     for i in a:
 5         if i.isalpha():
 6             temp = ord(i)+5
 7             if chr(temp).isalpha():
 8                 c += chr(temp)
 9             else:
10                 c += chr(temp-26)
11         else:
12             c += i
13     return c
14 
15 # 解码函数decoder()定义
16 def decoder(x):
17     z = ''
18     for i in x:
19         if i.isalpha():
20             temp = ord(i)-5
21             if chr(temp).isalpha():
22                 z+=chr(temp)
23             else:
24                 z+=chr(temp+26)
25         else:
26             z += i
27     return z
28 
29 # 主体代码逻辑
30 text = input('输入英文文本: ')
31 
32 encoded_text = encoder(text)
33 print('编码后的文本: ', encoded_text)
34 
35 decoded_text = decoder(encoded_text)
36 print('对编码后的文本解码: ', decoded_text)

实验结果:

 task7:

实验源码:

 1 def collatz(n):
 2     l = [n]
 3     while l[-1] !=1:
 4         if l[-1]%2==0:
 5             l.append(l[-1]//2)
 6         else:
 7             l.append(l[-1]*3+1)
 8     return l
 9 
10 try:
11     x = int(input('Enter a positive integer:'))
12     if x <= 0:
13         raise
14 except:
15     print('Error:must be a positive integer')
16 else:
17     print(collatz(x))

实验结果:

 task8:

实验源码:

 1 # 函数func()定义
 2 def func(n):
 3     result = 1
 4     for i in range(n):
 5         result *= 2
 6     return result-1
 7 
 8 while True:
 9     x = input()
10     if x == '#':
11         print('计算结束')
12         break
13     n = int(x)
14     ans = func(n)
15     print(f'n = {n}, ans = {ans}')

实验结果:

 

标签:return,函数,sum,编程,源码,实验,print,def
From: https://www.cnblogs.com/114514x/p/17421500.html

相关文章

  • DHCP服务器配置实验
    参考:(36条消息)计算机网络基础实验三—DHCP服务器的配置和管理_混时魔王的博客-CSDN博客实验原理1.概念动态主机配置协议DHCP(DynamicHostConfigurationProtocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。其由RFC2131定义,采用客户端-服务器通信模式,由客户端(DHC......
  • 数组排序输出(函数模板)
    对于输入的每一批数,按从小到大排序后输出。一行输入为一批数,第一个输入为数据类型(1表示整数,2表示字符型数,3表示有一位小数的浮点数,4表示字符串,0表示输入结束),第二个输入为该批数的数量size(0<size<=10),接下来为size个指定类型的数据。输出将从小到大顺序输出数据。函数接口定义:sor......
  • strtok() 函数 2种方法的指针实现
    //Lvxin4-1 strtok.cpp //strtok()函数的实现 2种方法//下面的函数实现考虑一下3种极端情况://"-This,asamplestring"无行尾标志//"-This,asamplestring-"有一个行尾标志//"-This,asamplestring------” 有多个行尾标志#define_CRT_SECURE_NO_WARNI......
  • Jasypt和Druid加解密函数
    springbootjasypt加解密jasypt加密ENC()需要启动参数秘钥Druid加密,需要public-key  packagecom.example.demo;importcom.alibaba.druid.filter.config.ConfigTools;importorg.jasypt.encryption.pbe.PooledPBEStringEncryptor;importorg.jasypt.encryption......
  • 函数递归
    【一】函数递归【1】函数递归介绍函数不仅可以嵌套定义,还可以嵌套调用即在调用一个函数的过程中,函数内部又调用另一个函数而函数的递归调用指的是在调用一个函数的过程中又直接或间接地调用该函数本身在调用f1的过程中,又调用f1这就是直接调用函数f1本身deff1():......
  • Java网络编程----通过实现简易聊天工具来聊聊NIO
    前文我们说过了BIO,今天我们聊聊NIO。NIO是什么?NIO官方解释它为NewlO,由于其特性我们也称之为,Non-BlockingIO。这是jdk1.4之后新增的一套IO标准。为什么要用NIO呢?我们再简单回顾下BIO:阻塞式IO,原理很简单,其实就是多个端点与服务端进行通信时,每个客户端有一个自己的socket,他们与服......
  • LIMS实验室信息管理系统新增合同委托单
    LIMS系统如何快速新增委托单。委托单基本含有三个部分的内容:1.委托单基础内容如:委托单位信息,样品信息等2.付款单位信息。3.委托单测试项目。委托单基础内容可以通过委托模板自动填写委托单位信息和样品信息。委托单位信息能自定义字段:可以根据业务要求自定义委托单位的具体内容,填......
  • strtok() 函数 2种方法的指针实现
    //Lvxin4-1strtok.cpp//strtok()函数的实现2种方法//下面的函数实现考虑一下3种极端情况://"-This,asamplestring"无行尾标志//"-This,asamplestring-"有一个行尾标志//"-This,asamplestring------”有多个行尾标志define_CRT_SECURE_NO_WARNING......
  • MySQL常用关键字和函数及部分关键字使用场景
    世间情动,不过盛夏白瓷梅子汤,碎冰碰壁当啷响。一,关键字使用顺序在使用SQL查询时,关键字的顺序并不是非常重要,SQL解释器可以根据查询的语法结构自动推断其执行顺序。但是,为了使查询更加易读,并且能够避免出现在结果中无法预期的重复数据,建议始终按照以下顺序使用关键字:1,SEL......
  • < Python全景系列-5 > 解锁Python并发编程:多线程和多进程的神秘面纱揭晓
    欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。这是本系列的第五篇,我们将深入探讨Python中的......