input
input
:接受来自键盘的输入- 须知:Python默认将用户输入转变成字符串格式
所以如果你想要将输入数据进行算数运算时,一定要使用int/float
先将其转化为数字才能运算。但是除此之外,适用于字符串的拼接+
/重复*
你则可以直接使用。
- 布尔值在做算数运算的时候需要注意,
True
会被当作1,False
会被当作0,例如:
格式化输出
如果想按照固定格式输出字符串和变量,那就需要了解print函数稍微复杂一点的用法了,直接看例子:
print('%s\'s height is %f' % (name,height))
,print
括号内是 %
分割的两部分,第一块是你想输出的格式, s%
和 f%
分别指定字符格式和浮点数格式,第二块的括号内告诉了前面对应的不同变量值,多个值的话以()
包裹,并以,
分开(这其实是元组的形式)。
浮点数部分的结果不尽如人意,如果只想小数点后2位呢,那就请换成%.2f
:
当然你很可能需要将整数用某个数补齐到多少位,示例:
d%
表示整数 010
表示总共10位,不足的以0填充,如果这个数本来就大于或等于10位,则原样输出。
总结来说:
占位符 | 意义 |
---|---|
%s | 字符串 |
%.2f | 保留2位小数 |
%05d | 5位整数,不足位用0填充 |
当然,如果你懒得记,任何时候都可以使用s%
作为占位符
print
另外一个扩展用法是,可以指定结尾符号,否则默认会在行尾加上换行符。注意这里,在行内可以通过;
写多个语句。print('*',end = '');print('---',end = '');print('*')
三大流程
任何一门语言其实都可以归位三大类:
- 顺序:自上而下,顺序执行
- 分支:条件判读,执行分支语句
- 循环:满足条件循环执行,否则跳出循环
摘自黑马Python教程
一图胜千言,第一类不必多做解释,Python执行一句解释一句,知道代码最后一行;第二类分支语句,也是顺序执行,只是需要将条件判断当作一个整体来看,在条件判断内部则是满足条件则执行成立的代码,并回到后续主体代码,条件不成立则执行不成立的代码,最后也要返回到后续主体代码;第三类语句同样如此,只是在循环内部,条件成立时会循环执行内部的代码,直到条件不满足时跳出整个循环回到后续主体代码。
while循环
需要注意while循环的语法:
i = 0 #初始化计数器,必须给,否则报错
while i < 3: #while循环执行的条件,满足的话才能执行循环体内的语句,不满足则跳过循环语句,执行后续代码
print(i)
i = i + 1 #计数器加1,必须执行否则是死循环
print('loops over!') #当循环条件不满足,继续向后执行
第一轮,i=0,满足i<3的条件,执行循环体内的语句,打印0,随后加1,i在第一轮结束后变成1
第二轮,i=1,满足i<3的条件,执行循环体内的语句,打印1,随后加1,i在第二轮结束后变成2
第三轮,i=2,满足i<3的条件,执行循环体内的语句,打印2,随后加1,i在第二轮结束后变成3
第四轮,i=3,不满足i<3的条件,因此跳出循环,执行循环体后续的代码,打印loops over!
通过上述示例,while循环有三要素:初始化计数器,条件,计数器变化
当然while循环还有其他的形式:
while True: #逻辑真,始终为真的条件
word = input('enter something(Q/q/quit exit):')
if word == 'Q' or word == 'q' or word == 'quit':
break #通过break在循环体内通过if判断条件是否成立,若不成立则跳出循环体
之所以强调在循环体内改变计数器或者增加判断条件终止循环是因为要避免死循环的出现,否则,你的循环会变成*迈口香糖一直执行,根本停不下来。
在循环体内i = i + 1
其实可以简写为i += 1
这种赋值运算符,同样表示右边先进行运算,最后将结果重新赋值给原来的变量名,类似的还有*=,-=,/=,%=,**=
。
- 循环计算:要求计算0~100数列的和
result = 0 #定义一个数字用来保存最后的累加和
i = 0
while i <= 100:
result = result + i #右边先做加法,然后将累加的和重新赋值给result
i += 1 #计数器加1
print(result)
- 死循环
i = 0 #初始化计数器,必须给,否则报错
while i < 3: #while循环执行的条件,满足的话才能执行循环体内的语句,不满足则跳过循环语句,执行后续代码
print(i)
#i = i + 1 #计数器不变,死循环,一直输出0,ctrl+c终止
break和continue
看下面的图,break
和continue
的区别就在于,虽然都是在循环体内判断是否满足某个条件,但是结果却不一样:
- 一旦条件满足,
break
将直接跳过后续所有循环,进而执行while循环体下方的语句; - 一旦条件满足,
continue
会跳过当前的循环,本轮循环后的语句通通跳过,直接到下一次条件判断。很显然,continue
并不会影响后续轮数的循环。
摘自黑马python教程 - 避免
continue
造成的死循环
i = 0
while i < 10:
if i == 3: #如果i=3,跳过本轮循环,直接回到条件判断i<10,而i依然为3,从从而形成死循环
continue
print(i) #当i=3后,以下代码均不会执行
i += 1
因此,在使用continue
的时候一定要在判断条件块的continue
语句之前改变计数器。