MOOC_Python第1章测试题笔记

Flag

8月29日前学习完MOOC_Python课程,以下各测试题均来自于@Python123网站,来源于北京理工大学MOOC_Python视频。为了更好理解Python语言并做笔记,对一些有难度/有意义的课后测试及作业题进行记录。

总结在前

1. 分析问题的计算方式最重要
2.for循环遍历
3.eval()函数的使用
4.range(len(s))的含义

测试题1 Hello World的条件输出

描述

获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
如果输入值是0,直接输出"Hello World"‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
如果输入值大于0,以两个字符一行方式输出"Hello World"(空格也是字符)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
如果输入值小于0,以垂直方式输出"Hello World"*

Python代码

n = eval(input()) #eval函数将输入的数字字符串转化为数字;
if n == 0:	#n与0比较,比较符号用==;
    print("Hello World")
elif n > 0:	
    print("He\nll\no \nWo\nrl\nd")	#以两个字符一行输出"Hello World"(空格也是字符);
else:
    for c in "Hello World":	#"Hello World"相当于字符串,for循环是遍历该字符串,遍历一次就输出一个,实现垂直方式输出。
        print(c)

对于n>0部分的代码,做题时想复杂了,不用遍历,直接打印输出结果就可以,但只适合字符串短的。若字符串太长,还是要遍历实现,可采用另一种方式,取自【Python之Hello World的条件输出实例】:

elif n>0:
 	s = "Hello World"
    st =""#设置空字符串
    for n in range(len(s)):	#循环遍历s字符串,range(len(s))就是range(0,11),len(s)=11 ,就是n从0开始循环到11;
        if(n+1)%2 != 0: 
            st = st+s[n]
            if len(s)==(n+1):
                print(st)
        else:
            st = st+s[n]
            print(st)
            st=""

测试题2 数值运算

描述

获得用户输入的一个字符串,格式如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬M OP N‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
根据OP,输出M OP N的运算结果,统一保存小数点后2位。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬*

Python代码

s = input()
print("{:.2f}".format(eval(s)))

做题时想复杂了,Python是可以进行简单计算的,输入的s为字符串,用eval函数转化为计算公式时,Python可直接输出数值。

测试题3 数字形式转换

描述

获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
09对应的中文字符分别是:零一二三四五六七八九

Python代码

temp = "零一二三四五六七八九"
s = input()
for c in s:	#for循环的遍历,同测试1中的for循环
    print(temp[eval(c)], end="")	
    #由于temp字符串的索引是与数字对应的,因此用eval将字符串c转化为数字后,就是对应的temp索引值。
    #print()中增加end=""参数表示输出后不增加换行,多个print()可以连续输出。

做题时问题分析清楚了再想代码实现。

你可能感兴趣的:(MOOC_Python第1章测试题笔记)