自己就是个新手,写的也是非常“新手”的常识, 没有先后次序之分,想到哪,写到哪。有些简单的东西,整理一遍之后才发现,哇~原来这个还可以这样的......
- while 的用法:
while 后面跟条件表达式,(:)后面跟语句块,你可以在这段语句块里修改条件表达式的某些变量,当条件表达式 为假的时候退出循环。例如:
flag = 5 while flag > 0: #这里是你的代码 flag -= 1 #if flag == 3: break #if flag == 3: continue print flag
当然你也可以在适当的时候用 break 直接跳出循环。
执行 continue 语句表示 忽略该循环 continue 以后的代码,直接进行下一次迭代(循环),即跳到 条件表达式 处。
注意一点,如果一开始 条件表达式 为假,那么while 里的代码一次都不会执行。
条件表达式 也可以是一个值 ,如 True ,这时候一般需要 break 语句配合循环的退出。
- 一个循环的简单例子
from random import randint from time import sleep,ctime '''随机得到100个数(字符串表示),然后间隔2秒循环3次,每次输出其中一段数字''' aList = '' for i in range(100): #得到100个随机数的字符串表示 aList += str(randint(0,9)) reFlag = 5 #循环 5 次 while reFlag > 0: getNum = int(aList[randint(0,49):randint(50,99)]) #得到随机N个数字 sleep(2) print getNum reFlag -= 1
- 问题:用Python求一组数的平均值,为什么最后只能显示整数部分呢,可以显示小数部分吗?
def Average(list): r=0 for i in list: r+=i result=r/len(list)
解:
代码中的除法为“地板除”,即它只取商的整数部分,不是真正的除法。
可以这样修改 result=float(r)/len(list),进行数字的显示转换。
也可以这样修改 result=1.0*r/len(list), 让解释器进行默认的类型转换(向(1.0)的类型进行转换),至于转换的优先级,正确的转换方向应该是,整数向长整数转换,长整数向浮点数转换,非复数向复数转换。
- 问题: >>>0.1 为何输出为 0.1000000000000001
而在Python中,0.1的二进制表示是 0.11001100110011..*2(-3)(-3为指数)
与它最接近的二进制近似值是 0.0001100110011...,或表示为 1/16+1/32+1/256+... ,看到不了吧,这里边有个循环的问题,他在不停的重复舍入直到出错。
你可以导入 decimal 模块 的 Decimal 类:
>>>from decimal import Decimal
>>>dec = Decimal('.1')
>>>dec
Decimal('0.1')
>>>print dec
0.1
更多内容请参阅 “十进制浮点型”
>>>dec = Decimal('.1')
>>>dec
Decimal('0.1')
>>>print dec
0.1