第一至三关 代码书写规范与基本使用

Q:代码等于号两边要不要空格,有影响吗
A:没有影响,要习惯空格,这样更加规范美观,有辨识度,如:
a = 0
b = input(‘输入你的问题’)

Q:单引号、双引号、三引号的区别
A:正常使用单引号和双引号都是可以的,三引号表达的是换行字符串,会将引号内的所有内容打印出来,如:
print(‘’’你好啊
天气真好’’’)

Q:直接输入了内容不能够运行,如直接输入 你好啊,天气真好,点击运行,结果报错
A:python代码是需要有执行的,你好啊,天气真好并不是一个执行操作

Q:代码一直运行中
A:检查一下终端是不是可以输入,如果代码内有输入操作的话,代码会一直显示运行中,需要
等待输入内容

Q:else后面不可以加条件
A:else表达的就是其它所有情况,不可以加条件,加条件的话使用的是elif

Q:if和else一定要同时出现吗
A:不一定,它们都可以单独使用,else也可以和循环一起使用,表达循环外的所有情况

Q:int(input())输入小数为何报错
A:input输出的是字符串类型,类浮点数字符串如’1.5’中的小数点是无法被int函数识别转换
的,所以会报错,int只能转换纯整数字符串

Q:数据的运算
A:整数和浮点数是可以直接加减乘除的,字符串如果用加法的话会拼在一起形成一个新的字符
串,用乘法会多次打印如,’2’*7会得到’2222222’,字符串是没有减法和除法的

Q:input里面要不要加print
A:不需要,input括号内的内容可以理解为是问题,在运行的时候就会把问题打印出来,如果
加上print的话,就会打印none,这里涉及到返回值的问题,目前不需要纠结

Q:常见的一些报错类型
A:
SyntaxError: unexpected EOF while parsing
#语法错误,多了无法解析的符号,检查一下是否多了或者少了括号
SyntaxError: invalid character in identifier
#语法错误有无效标识符,检查一下中文符号
IndexError: list index out of range
#索引错误,超出索引范围,检查一下列表是否为空
TypeError: must be str, not int
#数据类型错误,该数据不是正确的数据类型,比如字符串和数字直接拼接,检查一下数据类型
IndentationError: expected an indented block
#缩进错误,检查一下代码的缩进是否正确
KeyError: ‘fond’
#键错误,字典中没有该的key对应的值,检查一下键名或者字典数据是否正确
ValueError: substring not found
#值错误,输入的数据类型跟要求的不符合
NameError: name ‘a’ is not defined
#未初始化对象,变量没有被定义
AttributeError: ‘tuple’ object has no attribute ‘remove’
#属性错误,该对象没有这个属性、方法,检查一下数据类型
SystemExit
#解释器请求退出,出现在exit()函数后
IOError
#输入/输出操作失败
ImportError
#导入模块/对象失败,检查一下模块是否能够正常使用
UnicodeDecodeError/UnicodeEncodeError/UnicodeTranslateError
#Unicode 解码/编码/转换/时的错误

第四关 布尔值

Q:如何表达python中的不等号,大于等于号,小于等于号
A:python中使用“!=”来描述不等号,“>=”描述大于等于号,“<=”号表达小于等于号
图片.png

Q:一个等号和两个等号的区别
A:一个等号表达的是赋值行为,如“a=0”,即表达将0赋值给a;两个等号表达的是判断行为,
如“if a==0”,即表达判断a是否与0相等

Q:回答条件不充分造成的判断结果不一致,如:
v1 = input(‘对方是达官显贵吗?’)
v2 = input(‘对方是富可敌国吗?’)
if v1==’是达官显贵’ or v2==’是富可敌国’:
print(‘国师的要求通过了’)
else:
print(‘国师的要求没通过’)
#输入“是”结果输出的是没通过
A:判断的条件为“是达官显贵”,“是富可敌国”,而不是“是”

Q:or的错误使用,如:
v1 = input(‘对方是达官显贵吗?’)
if v1 == ‘no’ or ‘不是’:
print(‘国师的要求没通过’)
else:
print(‘国师的要求通过了’)
#无论输入什么都显示“国师的要求没通过”
A:原因是因为or 后面没有加上对比条件,表达的其实是if ‘不是‘,而非空字符串的判断永远为真永远为真,所以会一直显示没通过

正确应为
v1 = input(‘对方是达官显贵吗?’)
if v1 == ‘no’ or v1 == ‘不是’:
print(‘国师的要求没通过’)
else:
print(‘国师的要求通过了’)
#无论输入什么都显示“国师的要求没通过”
图片.png


Q:缩进是什么,什么时候需要缩进
A:在python中是通过缩进来表达语句的从属关系,如循环语句,条件语句下缩进的内容则表
示以下语句从属与这个循环/条件语句,如
a = int(input(‘你今年几岁了?’))
if a < 18:
print(‘不可以喝酒噢’)
#即其中的print语句从属于if a<18这个条件判断语句里面

第五至六关 while 循环


Q:除了while True,while循环后面还可以接什么
A:课程中有一句话,可以利用while 后面的条件为真来开始循环,条件为假来结束循环,如
a = 0
while a<3:
a=a+1
#表达的逻辑:当a<3的时候,开启循环,每次a在原来的基础上增加1
#当a=3不满足a<3的时候,while循环会结束,可以由此语句来实现限制循环次数,循环会
由于a的原因只能被循环3次

Q:课程中”man=’’”为什么不直接通过input直接赋值
A:不直接通过input赋值是因为如果只有一次赋值机会,while man !=’有’的判断将永远满足,循环无法停止,简单的可以理解为,如果需要多次提问,那么提问也应该放进循环里面,放在循环外面就只会执行一次,总不能只问别人一次却需要提供多次回答吧

Q:什么东西要放在循环里面,什么东西需要放在循环外面
A:循环表达的是多次执行,如果需要多次执行的内容,则放在循环里面,需要打印多次,提问多次,则将input放进循环,print放进循环,反之放在循环外面,如
a = 0
while a < 5:
a = a + 1
print(a) #打印出了12345
———————————————————————————————————
a = 0
while a < 5:
a = a + 1
print(a) #打印了5
#因为例a的print放在了循环里,所以执行了多次,即打印了所有过程,而放在循环外面,打印的是最终的结果

Q:break和exit()的区别
A:break是结束当前层次下的循环,exit()是直接结束整个程序

第七关 列表和字典


Q:编程的索引
A:编程是从0开始的,所以列表中第一个元素,其实是第0个元素,第二个元素才是第1个元素

Q:s[0:3]包括了左边的0,不包括右边的3
A:规则要求,记住即可,如果需要理解的话,可用下图,取数字0和3中间的部分
图片.png

Q:字典里有重复键会怎么办?
A:如果有重复键的话,后面一个键会覆盖掉前一个键,如果打印,只会显示后一个键的值

Q:字典列表多层嵌套怎么取想要的内容
A:剥洋葱,先看最左边的括号是什么,如果是” {“ 则说明是字典,用键的名字取,如果是”[“说明是列表,用序列取,每一层取到都可以打印出来看看

第八关 for循环

Q:for x in i,为什么是x?
A:x只是一个用来遍历的变量,可以任意取一个可用变量名,如a/b/c/d/e/f/g/aa/bb/cc

Q:输出的时候使用”+”与”,”的区别
A:“+”号是左右数据进行拼接,最终成为一个数据,要求+号左右两边数据类型相等,“,”是对数据分别打印,不要求数据类型

Q:range(3)其实是什么意思
A:range(3)完整的是range(0,3),是指从0开始,到3结束,后面可以再加上参数步长如,range(0,10,2)即为从0开始,到10为止,每次增加2

Q:什么数据可以使用for循环
A:数据类型:int,bool,str,list, tuple元组,dict字典。

Q:如何快速通过for循环获取值
A:利用print函数把每一个遍历的内容打印出来看看