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)