本帖最后由 金路成 于 2018-8-1 22:49 编辑
下列表达式对应的结果,不正确的是:(d) a) 7 and 8:返回值(8) b) Not 3 : 返回值(False) c) -5 or 2:返回值(-5) d) -1 or 0:返回值(0) 小结:该题中的计算主要是考察逻辑运算符的使用,逻辑运算符有:and、or、not。其中and为并,真真为真,有假则假,所以A选项中,7转为bool型为True,则这式子结果由and后面的决定,所以系统会自动输出and后面的值。 而not是取反,True变False,False变True。而数字中,除了0,都为True,取反后为False。字符串、列表、元组和字典都是只有空(空格算空)为False,只要有东西就为True。 or是或,有真就为真,全假为假,C选项中,-5为True,则结果一定为True,所以直接返回 -5,同理可得D中的-1为True,所以应该返回 -1 。
对字符串str = ‘helloworld’ 进行str[:5:-2]操作,得到的结果是:(b) A ‘ hlo’ B ‘ drw’ C ‘ hello’ D ‘ world’ 小结:这题比较简单,但是其中也有点问题,那就是如果在字符串’hello world’前面加上几个空格,答案会比较怪,比如’ hello world’,相同的切片操作后,得到的会是’drwo’,明明前面从0-5的长度没有变,步长为-2,但是会多切一个。所以个人理解为,当步长为负数的时候,切片会从后往前切,直到切到从前往后的索引5为止。
定义一个学生类,实例属性有姓名,年龄,提示用户分别输入一个学生信息(姓名以及年龄), 根据用户输入的信息创建一个学生对象,将这一个学生对象存入列表,遍历列表删除年龄小于十八岁的学生对象, 最后输出列表中剩余的学生信息 |
class Student(object): def __init__(self, name,age): self.name = name self.age = age def __str__(self): return "学生:%s 年龄:%s" % (self.name, self.age) stu_list = [] for i in range(1, 4): stu_name = input("请输入第%s个学生姓名:" % i) stu_age = int(input("请输入第%s个学生年龄:" % i)) stu = Student(stu_name, stu_age) stu_list.append(stu) new_list = [] for temp in stu_list: if temp.age >= 18: new_list.append(temp) for j in new_list: print(j) 这题不是很难,但是一共有三个遍历,第一个遍历是为了使用循环输入学生信息,创建学生对象,第二个遍历是遍历是将学生列表中的数据提出来进行条件删选,并将符合条件的学生加入到新的列表,最后一个遍历可以将符合条件的学生按照格式输出。 |