Python入门很轻松(微课超值版)
上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