“不学”是一种学习方法,是指自然学习法。在阅读中学习,在虽零碎而简单但却持久保持兴趣的练习和使用中学习。一看就懂,不学就会,慢慢精通。
阅读和练习中遇到的新问题,如果不影响你的理解,可以不必纠结,就像读英语小说遇到生词不必每个都去查词典一样。
我们每过一段时间集中答疑一下,帮你理解。
Q: 请问接收用户输入时有时候为什么要用 int(input( )) ?
A: 好问题!input( ) 函数本身很好理解,但我们要记住它收下来的是一串字符,或者叫一个字符串。但我们可能希望得到的是一个数,这个时候就要转换一下。
int是英语integer的简写,表示整数。所以 int(input( )) 表示把接收的字符串转换为整数,等同于:
string = input( )
num = int(string)
如果你希望接收的是浮点数(小数),那么可以写成 float(input( ));如果你想把收到的字符串拆成一个字符列表,可以写成 list(input( ))。
Q: 请问 len( ) 函数是什么?
A: len是英语length的缩写,所以整个函数就是计算一个字符串的长度,也可以是一个列表中元素的个数。例如 len("I love you.") 的结果是11,而 len([0,1,2,3,4,5]) 的结果是6。
Q: 我知道之前讲过导入库函数用import命令,那from...import...又是什么呢?
A: 用 import 可以导入函数库,也叫模块。有两种方式:
- import 模块名
- from 模块名 import 函数1, 函数2, ......
第一种方式导入该模块的全部函数,使用的时候要用这种格式:模块名.函数名( )。
第二种方式导入该模块的一个或多个函数,使用时不用模块名,只要 函数名( )
第二种方式也可以用 * 号表示导入全部函数,相对于第一种的好处是使用时不需要写模块名。像math库里面的函数太常用了,所以一般用第二种带星号的方式:
from math import *
这样你就可以直接使用 sqrt( ) 函数、sin( ) 函数 等等,毋需带上 math.
Q: 我看见for循环用似乎经常用到,能否稍微讲一下?
A: 是的,for循环非常有用。当循环的次数确定时,使用for循环。格式是:
for x in [a, b, c, d, ...] :
......
......
中括号是一个列表(list),这句话的意思跟我们自然语言是一样的:对于x等于该列表每一个元素的情况,执行下面缩进对齐的那些语句。每执行一次,x自动往后跳一个元素。
该列表经常用range( )函数来产生,例如range(6),产生列表[0, 1, 2, 3, 4, 5]。
如果不知道循环次数,要用while循环,格式是:
while 条件表达式 :
......
......
条件表达式就是比较一个结果是否为真(True),例如x==3,x>y,等等这些比较的结果如果是True就执行下面的语句并循环回来,直到比较结果为假(False)。
另外,用break语句可以直接跳出for循环或while循环。
使用while循环的时候,一定记得要在循环体中改变条件表达式里的某些值,不然你的循环一旦运行起来就无法停止(要死机ヽ(*。>Д<)o゜),除非你有效地使用了break语句。