Python3学习过程中遇到的小问题

1. input()函数

input函数的返回结果是字符串String类型,如果要进行数字的相加减,需要进行类型转换。如下:
在不进行转换时会报错:

x=input('Please input first num:')
y=input('Please input second num:')
rst=(x)*(y)
print(x,'x',y,'=',rst)
Traceback (most recent call last):
  File "test.py", line 5, in <module>
    rst=(x)*(y)
TypeError: can't multiply sequence by non-int of type 'str'

更正如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
x=input('Please input first num:')
y=input('Please input second num:')
rst=int(x)*int(y)
print(x,'x',y,'=',rst)

同样如果输入的是浮点类型:

height=float(input('Please input your height:'))
weight=float(input('Please input your weight:'))
BMI=weight/((height)*(height))
print(BMI)
if BMI<18.5:
    print('Too light')
elif BMI<=25:
    print('Normal')
elif BMI<=28:
    print('Too height')
elif BMI<=32:
    print('Fat')
else:
    print('Serious Fat')

continue的理解

continue是跳过本次循环体之后的代码。
因此如下代码会陷入死循环,并且只会打印到11,即100~12

a=100
while a>0:
    if a==11:
        continue
    print(a)
    a=a-1   

而如下代码同样会陷入死循环,会打印到11,然后一直打印11:

a=100
while a>0:
    print(a)
    if a==11:
        continue
    a=a-1 

而如下的代码,continue不起任何作用:

a=100
while a>0:
    a=a-1   
    print(a)
    if a==11:
        continue

因而正确的写法:
循环体在continue上面,输出结构在continue下面。

a=100
while a>0:
    a=a-1   
    if a==11:
        continue
    print(a)

猜你喜欢

转载自blog.csdn.net/qq_36743482/article/details/79642895