上QQ阅读APP看书,第一时间看更新
3.5 新手疑难问题解答
疑问1:通过下面的代码求圆面积时报错怎么办?
>>> a=input("请输入半径: ") 请输入半径: 12.2 >>> b=3.1416*a*a Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> b=a*a TypeError: can't multiply sequence by non-int of type 'str'
解答:因为input()函数输入的是字符串格式,所以在键盘输入的浮点数并不是真正的浮点数,而是字符串形式。因为radius是字符串形式,不可以相乘,所以在执行语句b=3.1416*a*a时会报错。这里使用float()函数强制将输入的半径值转换为浮点数。
修改代码如下即可解决问题。
>>> a= float(input("请输入半径: "))
疑问2:如何使用range()函数?
解答:range()函数可创建一个整数列表,一般用在for循环中。语法格式如下:
range(start, stop[, step])
各个参数的含义如下:
start:计数从start开始。默认是从0开始。例如,range(5)等价于range(0, 5)。
stop:计数到stop结束,但不包括stop。例如,range(0, 5)是[0, 1, 2, 3, 4]没有5。
step:步长,默认为1。例如,range(0, 5)等价于range(0, 5, 1)。
☆大牛提醒☆
在使用range()函数时,如果只有一个参数,那么表示指定的stop;如果有两个参数,则表示指定的start和stop;如果三个参数都存在时,最后一个参数是step。
如果需要遍历数字序列,通常会用到range()函数,结合循环控制语句,将起到事半功倍的作用。
使用range()函数可以生成数列。例如:
>>> for a in range( 5): print (a) 1 2 3 4
使用range()函数也可以指定区间的值。例如:
>>> for n in range(5,9): print (n) 5 6 7 8
使用range()函数还可以指定数字开始并指定不同的增量。例如:
>>> for n in range(0,10,2): print (n) 0 2 4 6 8
从结果可以看出,增量为2。增量也可以使用负值。例如:
>>>for n in range(0,-10,-2): print (n) 0 -2 -4 -6 -8