preface
这届后端组大一的新生一共六名同学,三个来自计算机学院,另外三个非计算机学院。
给他们的第一次任务,是55道程序设计题目,少部分题目,涉及到一些算法。计算机学院的同学使用C++写,非计算机学院的同学使用的python。
本来是我和健勋,负责带非计算机学院的三个学弟。由于健勋就读于国际学院,明年就要出国了,需要准备托福,我就负责了三个学弟。
代码均放在了工作室github,有关第一次任务存在的一些问题陆续更新在本文
问题讲解
输入输出问题
1 | Example(基础)输入两个数,求出它们的和并输出。样例输入:1 2 |
学弟们大致都是这样写的
1 | a=input() |
但是这样的输入是与题目要求不符合的,题目中的输入是在同一行输入两个数,而他们的写法只能在一行输入一个数字
推荐这样写
1 | a,b= map(float, raw_input().split()) |
raw_input()
将所有输入作为字符串看待,返回字符串类型。
注意:input()
和 raw_input()
这两个函数均能接收 字符串 ,但 raw_input()
直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。
除非对 input()
有特别需要,否则一般情况下我们都是推荐使用 raw_input()
来与用户交互。
注意:python3 里 input() 默认接收到的事 str 类型。
以下是参考链接
循环问题
有的同学在上大学前有过一些C语言的基础,然而Python中的for循环有一些不同
在C,C++,或者类C的一些语言中for循环大概如下
1 | for(int i = 0 ; i < n; i++) |
而在python中设若有如下一个list
1 | a = [100,200,300,400,500] |
像这样是没有下标的。而在一些程序设计题当中,有时候是需要控制输出格式的,这样就不太方便
这里有一个解决方案
Python内置的enumerate
函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身: 1
2
3
4
5
6>>> for i, value in enumerate(['A', 'B', 'C']):
... print(i, value)
...
0 A
1 B
2 C
此外listName.index(element)可以得到列表某个元素的下标,len(listName)可以得到某个列表的长度,这样结合起来也可以相互判断
以下是参考链接