黑马程序员技术交流社区

标题: 基础班个人阶段技术问题小结 [打印本页]

作者: 金路成    时间: 2018-8-1 22:26
标题: 基础班个人阶段技术问题小结
本帖最后由 金路成 于 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)
小结:该题中的计算主要是考察逻辑运算符的使用,逻辑运算符有:andornot。其中and为并,真真为真,有假则假,所以A选项中,7转为bool型为True,则这式子结果由and后面的决定,所以系统会自动输出and后面的值。
not是取反,TrueFalseFalseTrue。而数字中,除了0,都为True,取反后为False。字符串、列表、元组和字典都是只有空(空格算空)为False,只要有东西就为True
or是或,有真就为真,全假为假,C选项中,-5True,则结果一定为True,所以直接返回 -5,同理可得D中的-1True,所以应该返回 -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)
这题不是很难,但是一共有三个遍历,第一个遍历是为了使用循环输入学生信息,创建学生对象,第二个遍历是遍历是将学生列表中的数据提出来进行条件删选,并将符合条件的学生加入到新的列表,最后一个遍历可以将符合条件的学生按照格式输出。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2