马丁大爷的第二节课。
课上先讲了如何提交quiz,修改quiz。写完之后把代码粘贴进去,然后mark。绿色的是理论上的正确结果,如果是红色的,就是多余的。这个quiz想提交多少次就提交多少次,直到完全正确。真实测试的时候,只会按照最后一次的结果为准。
这里积累一个比较号的输入模板:
如果没有默认你的输入一定是什么数据类型,那么就需要加上try catch:
try:
data1,data2,.......,datan = (int (x) for x ininput('Prompts.....')).split()
if condition1:
code
if condition n:
code
else: raise ValueError(may be otherError)
except ValueError:
do something
sys.exit()#注意 这里需要import sys
这里是输入整数,如果是别的数据类型,完全可以举一反三。
然后讲了一些quiz1,我就不写了,以后集中整理quiz的时候整理就好了。
接下来是日常的代码部分:
1.Ddictionary:
数组是不能作为字典的索引部分的,这个很好理解,毕竟索引的要求就是不能够重复。
因此元组就可以作为一个很好的工具成为字典的索引了。
但是元组中如果包含list就不能够作为索引了。
由于元组中是否加入()是不重要的,所以下面两种写法是一样的。
也完全可以用这种写法来复制,是完全没有问题的.
DIC={}初始化就是字典,甚至可以直接通过新建的索引进行赋值
2.List 数组
数组的定义和内容已经整理过了,直接把老马的代码记录一下。
总结一下,
2.1索引
数组的索引是一个整数
如果是正数,那就是[0,len-1],不能越界。
如果是负数,那就是从后往前,如果越界了,就会永远指在第一个。
索引可以是通过一定的数学表达式得出。
2.2 可修改性:
和元组不同,数组可以直接修改,还有append和insert(这两个函数元组是没有的)
但是List本身可以作为tuple的成员,因此,即使不能够对tuple进行修改,但可以对list进行修改
3.数据类型转换
3.1单个数据转换
直接调用str(),float(),int()等函数就可以对单个数值进行转换
3.2数组数据转换
可以对数组中的每个元素进行数据类型转换
拓展:对于for前面的表达式可以随意写都行。
4.字符串处理
字符串本身也是一个数组,可以使用下标来查询
len()用来查找字符串或者数组的长度
split()来根据空格和\T划分数据,或者在括号内填入需要根据什么来划分,e.g.('n')
用startswith来判断字符串以什么内容开始
同理可以用endswith()
来看一个例子解释一下使用endswith来判断数据末尾是不是奇数的案例:
5.文件读取
文件读取每一行的正确模板。
with open('') as filename:
filename.readlines()#一口气读完所有代码
filename.readline()#读取一行代码
filename.close()