vlambda博客
学习文章列表

Python国外原题解析及源码1~10

朋友的小孩在国外大学学习,由于刚好知道微微老师在国内大学教Python,因此时不时会问一些问题,由此也接触到了国外老师是如何教Python的,看了他们给学生出的题目作为每周的任务,感觉还是非常不错的,借此机会简单整理给大家分享一下,古人教导我们要博采众长,诗经·小雅·鹤鸣》曰:“他山之石,可以攻玉。”。这里有一点需解释,由于国外很多时候初中高中就已经基本学过Python,因此到了大学,老师上课包括出题时会认为你已经有了Python基础...题目如下,每周完成一个任务(task),一个任务一般有2道题目,难度也是由浅入深递进。

task1:

任务1:

1.1 写一个程序,提示输入值。如果输入是偶数,输出“偶数”;如果是奇数,则输出“奇数”。

1.2 考虑一下如果值既不是偶数也不是奇数(譬如该值可能是小数,也可能根本不是数字)。

分析如下:

由于题目要求提示用户输入,所以需要判断用户有可能输错的情况,大家知道只有整数可以判断奇偶,因此小数,或者不是数字的情况都属于需要过滤的。大家可以使用try/except语句来实现异常判断。数据过滤之后,剩下的奇偶数判断就看是否可以被2整除即可。

参考代码:

Python国外原题解析及源码1~10

task2:

Python国外原题解析及源码1~10

任务2:

2.1  给定3个正整数,求前两个数之间是第三个数倍数的所有数的和。
2.2  给定一串字母,输出字母表a-z中每个字母出现的次数。提示:“a''!=“A”。
2.3  将除法以一系列减法实现。程序只处理整数,若有余数,则输出余数。

分析如下:

任务2.1  要求输入三个正整数,因此也需要数据异常判断一下,然后循环前两个数之间的值,判断是否被第三个数整除,如果可以,则用一个变量将这些值累加起来。

任务2.2  要求输入一串字符,统计字母出现的次数,因此需要数据过滤,比如输入值中有标点、空格、数字等这些,是需要过滤掉的。大家可以使用Python自带的函数,Python isalpha() 方法,来过滤掉字符以外的数据,但是微微老师发现一个问题, isalpha()无法过滤掉汉字,说明在python语言里汉字是当做字母处理的。毕竟是国外老师出的题目,没有考虑这种情况是可以理解的...

任务2.3  要求用减法来实现除法,这个比较简单不做过多分析。

参考代码:

2.1代码

Python国外原题解析及源码1~10

2.2代码

Python国外原题解析及源码1~10

2.3代码

Python国外原题解析及源码1~10

task3:

Python国外原题解析及源码1~10

任务3:

3.1  创建一个接受两个参数(名和姓]的函数,其中第二个参数是可选的。根据提供的参数打印问候语。示例输出: Hello Kneth,或者hello there Kenneth of Lim!
3.2   编写一个函数,可接受任何英语单词并将其转换为拉丁语。如果您可以,编写成一个可转换整个句子的函数。

-示例输入:   "technique“、 "omelet"...

-输出示例: "echniquetav" 、"omeletyay” 、"ingstray"...

分析如下:

任务3.1  考察的知识点是可变参数,当我们声明一个诸如 *param 的星号参数时,从此处开始直到结束的所有位置参数 (Positional Arguments)都将被收集并汇集成一个称为“param”的元组(Tuple)。类似地,当我们声明一个诸如 **param 的双星号参数时,从此处开始直至结束的所有关键字 参数都将被收集并汇集成一个名为 param 的字典(Dictionary)。

task4:

Python国外原题解析及源码1~10

任务4:

4.1 编写程序接收一串输入,忽略非数字,只提取数字出来,并计算它们的相乘,将结果输出。

程序如下:

Python国外原题解析及源码1~10

例如输入:'2 3 4 a c d' 结果如下:

Python国外原题解析及源码1~10

4.2 给定四个单词,返回任意可能的两两的结合组合。

程序如下:

Python国外原题解析及源码1~10

结果如下:

Python国外原题解析及源码1~10

task5:

任务5:

5.1  编写一个程序将任何字母集转换成其相对应的NATO单词,并且实现其反向操作的函数,例如:(提示:考虑输入为小写的情况,可以使用upper函数自动转换为大写)

输入 :CAT

输出  :Charlie Alpha Tango

输入  :Charlie Alpha Tango

输出 :CAT

国际无线电通话字母表

5.2  编写一个信息加密函数,该函数接收字符串和移位量,并输出加密后的字符串。如:

输入 :I love you 移位量 :1

输出 :J mpwf zpv

前文相关:


点个在看吧~