UoPeople CS 1101:递归函数与运行时错误

需积分: 9 0 下载量 125 浏览量 更新于2024-08-08 收藏 204KB PDF 举报
"UoPeople CS1101课程学习日志单元3,涵盖了递归函数、用户输入以及处理运行时错误的概念。" 在本单元的学习中,我们将关注以下几个关键知识点: 1. **递归函数**: 在提供的部分中提到了`countdown`函数,这是一个递归函数的例子。递归是指函数在其定义中调用自身的过程。在这个`countdown`函数中,如果输入参数`n`小于或等于0,它会打印"Blastoff!",否则它会打印当前的`n`值并递归地调用自身,参数为`n-1`。递归通常用于解决那些可以通过简化问题规模来解决的问题,例如在计算阶乘、遍历树结构等场景。 2. **编写`countup`函数**: 题目要求编写一个新的递归函数`countup`,该函数接受一个负数作为参数,并从这个负数开始向上计数,直到到达0,然后打印"Blastoff!"。与`countdown`函数相反,`countup`函数将增加计数而不是减少。 3. **用户输入**: 程序应能接收用户通过键盘输入的数字。在Python 3中,我们使用`input()`函数获取用户输入;而在Python 2中,使用`raw_input()`。根据用户输入的正负性,程序将调用`countdown`或`countup`函数。对于输入为0的情况,你需要决定调用哪个函数。这取决于你对0是否被视为正数或负数的逻辑解释。 4. **处理零输入**: 对于0的输入,你可以选择调用`countdown`或`countup`。一种可能的解释是,0被视为结束点,因此可以调用`countdown`函数以"倒计时"结束,或者调用`countup`以"正计时"开始。你需要提供代码来实现这个功能,并展示对于正数、负数和0的输入,程序的预期输出。 5. **运行时错误**: 此部分要求你编写一个会产生运行时错误的独特Python程序。运行时错误是在程序执行期间发生的错误,比如除以零、访问无效的内存位置等。你需要展示错误的代码,以及运行该代码时的错误消息。这有助于理解错误处理的重要性以及如何调试程序。 本单元的学习涵盖了递归编程的基本概念,用户交互,以及处理程序可能出现的异常情况,这些都是编程基础的重要组成部分。通过实践这些任务,学生将深化对Python编程的理解,并提升解决问题的能力。

编译报错 CREATE OR REPLACE PROCEDURE get_dev_cs IS sql_tem VARCHAR2(4000); v_dt NUMBER; BEGIN ----om_subscriber_yyyymm sql_tem := 'truncate table ycyd.Subscriber_cs'; EXECUTE IMMEDIATE sql_tem; FOR v_dt IN (SELECT to_number(substr(table_name, '15')) db FROM sys.all_tables a WHERE a.owner = upper('jour1') AND a.table_name LIKE upper('om_subscriber_202___') AND substr(table_name, '15') > 202205) LOOP -- 循环往b里添加数据 sql_tem := ' INSERT INTO ycyd.Subscriber_cs SELECT a.order_id, a.done_date, a.cust_id, a.subscriber_ins_id, a.access_num FROM jour1.om_subscriber_' || v_dt.db || ' a WHERE a.action = 0 AND a.is_usim = 1'; -- 执行sql EXECUTE IMMEDIATE sql_tem; END LOOP; ----om_order_yyyymm sql_tem := 'truncate table ycyd.order_cs'; EXECUTE IMMEDIATE sql_tem; COMMIT; FOR v_dt IN (SELECT to_number(substr(table_name, '15')) db FROM sys.all_tables a WHERE a.owner = upper('jour1') AND a.table_name LIKE upper('om_subscriber_202___') AND substr(table_name, '15') > 202205) LOOP -- 循环往b里添加数据 sql_tem := ' INSERT INTO ycyd.order_cs SELECT order_id, dev_id FROM JOUR1.om_order_' || v_dt.db || ' b'; -- 执行sql EXECUTE IMMEDIATE sql_tem; END LOOP; COMMIT; ---dev sql_tem := 'truncate table ycyd.yd_order_dev_3056'; EXECUTE IMMEDIATE sql_tem; -- 添加数据 sql_tem := ' INSERT INTO ycyd.yd_order_dev_3056 SELECT a.order_id, a.done_date, a.cust_id, a.subscriber_ins_id, a.access_num, c.dev_id, c.dev_name, d.code, c.dev_busi_code, c.corp_org, c.company_name, c.department_code, c.department_name, c.remarks FROM ycyd.Subscriber_cs a LEFT JOIN ycyd.order_cs b ON a.order_id = b.order_id LEFT JOIN params1.sec_developer c ON b.dev_id = c.dev_id LEFT JOIN (SELECT DISTINCT oo.code,s.bill_id FROM params1.sec_operator oo, params1.sec_staff s WHERE s.staff_id = oo.staff_id AND oo.state = 1 AND oo.staff_id NOT in ('123402933','123395474','123404209')) d ON c.dev_phone = d.bill_id WHERE c.corp_org = 3056'; -- 执行sql EXECUTE IMMEDIATE sql_tem; COMMIT; END get_dev_cs;

2023-07-14 上传