本文实例讲述了Python通用循环的构造方法。分享给大家供大家参考,具体如下:
1.交互循环
是无限循环的一种,允许用户通过交互的方式程序的特定部分;
def main(): sum =0.0 count =0 moredata ='yes' #字符串 while moredata[0] =='y': #获取字符串第一个字符,true执行下面的 x =eval(input('enter a number')) sum =sum+x count = count +1 moredata =input("你有更多的number(yes or no)") print("pingjunshushi:\n",sum/count) main() enter a number 3 你有更多的number(yesor no)y enter a number 4 你有更多的number(yesor no)n pingjunshushi: 3.5
2.哨兵循环:
执行循环要遇到设定的特殊数据,循环语句才会终止。
哨兵循环求平均数的方法:
1)设定一个哨兵值作为循环终止的标识;
2)任何值都可以看做哨兵,但是要与实际数有所区别;
python中空字符串以双引号""表示,注意引号中间没有空格!!!
def main(): sum =0 count =0 xStr = input("enter a number") while xStr != "": #空字符串 x = eval(xStr) #转换字符串为数字的过成 sum = sum + x count =count +1 xStr = input("enter a number :") print("average is",sum/count) main() enter a number6 enter a number :6 enter a number :6 enter a number : 这里确认输入不是哨兵空字符才将输入字符串转换为数字 average is 6.0
eval()
函数参数是字符串可以当成有效python表达式来求值,并返回计算结果
3.文件循环
def main(): fileName = input("file denumber:") #这个相当于一个文件 infile = open(fileName,'r') #open(文件名,方式'r'/'w')函数用来打开这个文件的一行保存在infile列表(相当一个数组)中 sum =0 count = 0 for line ininfile: #循环变量line遍历文件的每一行(文件每一行已经保存在infile列表中),将每一行执行下面的代码 sum = sum+eval(line) count = count +1 print("aveage is:",sum/count) main()
循环遍历文件,通常的方法是用哨兵方法一次读取文件的一行
这个可以用来读取excel中的测试用例;
python中采用readline()
方法的end-of-file循环模式:
readline()
将文件的一行读取到字符串中,在文件尾部readline()
返回一个空字符串可以作为哨兵值;
line=infile.readline() while line != "": #处理每一行 line =infile.readline()
这段代码会让人误以为遇到一个空行时就会退出,其实不然文本文件的空行包括一个换行符\n 这样readline()函数返回值是换行符,而不是哨兵值空字符串,循环继续
open()
打开文件读取保存到list中
readline()
读取文件,每次读取一行
4.死循环
python中可以用python完成特定的功能:
while True: try: x = int(input("输入一个数字:")) break except ValueError: print("重新输入:")
copy()
函数:
返回字典的浅拷贝;
dict1={"name":"liyue"} dict2=dict1.copy() print("dict2 is:",str(dict2))
运行结果:
dict2 is: {'name': 'liyue'}
python读取excel:
注意读取时候加上表头,没表头不行,所以测试用例要有表头。
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
Python,通用循环,构造方法
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com