While 循环语句

Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。当然也可以遍历所有的字符串,列表,元祖等。

其基本形式为:

while 判断条件:
    执行语句……

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。

当判断条件假false时,循环结束。

for 循环一般是用在一个有次数的循环上。

while 循环用在有条件的控制上。

来个容易上手的例子:

n = 0   ## 给n赋值初始值 0
while True:     ## True为表达式成立
    if n == 10:     ## 当 n==10的时候
        break       ## 跳出循环
    print n, 'hello'   ## 打印 ‘hello’
    n += 1      ## n=n+1

## 整体的程序是:使用while循环打印hello,当n==10 的时候就会停止。

执行结果:

0 hello
1 hello
2 hello
3 hello
4 hello
5 hello
6 hello
7 hello
8 hello
9 hello

手动选择停止 while 循环:

while True:
    aa = raw_input("pls input anything you want, use 'quit' to stop: ")
    if aa == 'quit':
        break

输出的结果是:

pls input anything you want, use 'quit' for stop: qawe
pls input anything you want, use 'quit' for stop: 123
pls input anything you want, use 'quit' for stop: q12
pls input anything you want, use 'quit' for stop: quit

Process finished with exit code 0

循环使用 else 语句

在 python 中,while … else 在循环条件为 false 时执行 else 语句块:

#!/usr/bin/python
 
count = 0
while count < 5:
   print count, " is  less than 5"
   count = count + 1
else:
   print count, " is not less than 5"

以上实例输出结果为:

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5

牛刀小试:

  1. 现有一个文件test.txt ,内容如下: 1234efgh abcd5678 要求读出文件内容,对内容的顺序进行编辑,然后重新写入到文件,使其为如下形式 12345678 abcdefgh 注意事项:使用pycharm的同学在调试程序时,如果程序对文件进行了操作,然后手动修改了文件,则要在pycharm中,程序所在的目录上点击右键,选择clean python compiled files,否则可能会报错
  2. 将上周五生成的dict3,排序后写入到文件dict.txt中,要求格式为 A 65 B 66 C 67 … x 120 y 121 z 122
列表的 切片:
#!/usr/bin/python

list1 = []
with open('/tmp/asd.txt') as aa:
    for i in aa.readlines():
        list1.append(i)
    line1 = list1[0][0:4] + list1[1][4:9]
    line2 = list1[1][0:4] + list1[0][4:9]
with open('/tmp/asd.txt','w') as aa:
       aa.write(line1)
       aa.write(line2)
元祖转换成字符串:
dict3 = {'A': 65, 'C': 67, 'B': 66, 'E': 69, 'D': 68, 'G': 71, 'F': 70, 'I': 73, 'H': 72, 'K': 75, 'J': 74, 'M': 77, 'L': 76, 'O': 79, 'N': 78, 'Q': 81, 'P': 80, 'S': 83, 'R': 82, 'U': 85, 'T': 84, 'W': 87, 'V': 86, 'Y': 89, 'X': 88, 'Z': 90, 'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}

# A 65
# B 66
# ...
# y 121
# z 122

dict2 = sorted(dict3.items(),key=lambda d:d[0])
with open('/tmp/aa.txt','w') as fd:
    for k,v in dict2:
        fd.write(k + '  ')
        fd.write(str(v)+ '\n')

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏抠抠空间

Django 2.0 新款URL配置详解

Django2.0发布后,很多人都拥抱变化,加入了2的行列。 但是和1.11相比,2.0在url的使用方面发生了很大的变化,下面介绍一下:

2515
来自专栏菜鸟致敬

【Lua菜鸟②】数据类型

Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。(我想了想python) -- 用来单行注释 --[[...

4286
来自专栏mathor

线程同步

1303
来自专栏xingoo, 一个梦想做发明家的程序员

Log4j官方文档翻译(七、日志格式化)

apache log4j提供各种layout对象,然后根据自己指定的layouts对象转化日志信息。通常来说都是应用量身定制layout对象转换信息格式。 所有...

1965
来自专栏Golang语言社区

转-Go语言开发常见陷阱,你遇到过几个?

Go作为一种简便灵巧的语言,深受开发者的喜爱。但对于初学者来说,要想轻松驾驭它,还得做好细节学习工作。 初学者应该注意的地方: 大括号不能独立成行。 未使用变量...

3539
来自专栏java一日一条

教你在Java接口中定义方法

基本上所有的Java教程都会告诉我们Java接口的方法都是public、abstract类型的,没有方法体的。

841
来自专栏Python小屋

几行代码理解Python变量访问的LEGB顺序

Python变量访问时有个LEGB原则,也就是说,变量访问时搜索顺序为Local ==> Enclosing ==> Global ==> Builtin,听起...

2904
来自专栏xingoo, 一个梦想做发明家的程序员

结构体的优化声明

声明一个结构体的时候,因为考虑到内存的对齐。例如,int型的变量,需要4个字节,那么它在存储的时候就需要在地址能够被4个字节整除的地方开始申请。 例如我们申请下...

18110
来自专栏从零开始学自动化测试

python笔记14-读取yaml配置文件

yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言。yaml 是专门用来写配置文件的语言,...

4908
来自专栏jmeter高手高高手

Jmeter(五)_函数

1、它有两个参数,第一个参数是要执行的语句,可以是beanshell语句或者是文件地址,是必选参数;第二个参数是保存结果的变量名称,非必选参数。

1632

扫码关注云+社区