下列表达式对应的结果,不正确的是:(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)
这题不是很难,但是一共有三个遍历,第一个遍历是为了使用循环输入学生信息,创建学生对象,第二个遍历是遍历是将学生列表中的数据提出来进行条件删选,并将符合条件的学生加入到新的列表,最后一个遍历可以将符合条件的学生按照格式输出。