while循环

语法:
while condition_1:
    statement_block_1

当condition_1为True,执行代码块statement_block_1

例1:计算1~100的总和
#!/usr/bin/env python
n = 100
sum = 0
counter = 1

while counter <= n:
        sum = sum + counter
        counter += 1
print(sum)

例2:可通过设置永不为False的条件来实现无限循环,无限循环一般用来做实时测试请求,且只能用外部手段停止该循环,如CTRL+C。
#!/usr/bin/env python
var = 1

while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num) 
print ("Good bye!")


while循环使用else语句

语法:
while condition_1:
    statement_block_1
else:
	statement_block_2

 while...else 在condition_1为False时执行else的代码块statement_block_2

例:
#!/usr/bin/env python
count = 0

while count < 5:
        print (count)
        count=count+1
else:print('\nops,it`s granter than 4 now')


while,if,else,elif,for等语句的代码块若只有一行,可将代码块与之写在同一行:

while 1==1:print('yes')
if 1==1:print(yes)
for i in range(5):print(i)


for循环

for循环常用语遍历序列、或列表、或字符串。

语法:
for <variable> in <sequence>:
    <statements>
else:
    <statements>

例1:遍历显示languages中的字符串
>>>languages = ["C", "C++", "Perl", "Python"] 
>>> for x in languages:
...     print (x)
... 
C
C++
Perl
Python

例2:使用range()函数遍历显示数字序列
>>>for i in range(5):
...     print(i)
...
0
1
2
3
4

例3:使用range()函数遍历显示指定区间数字序列
>>>for i in range(5,9) :
    print(i)   
5
6
7
8

例4:使用range()函数以指定数字开始并指定不同的增量(可以是负数,有时这也叫做'步长')
>>>for i in range(0, 10, 3) :
    print(i)

0
3
6
9

例5:结合range()和len()函数以遍历一个序列的索引
>>>a = ['Google', 'Baidu', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...     print(i, a[i])
... 
0 Google
1 Baidu
2 Taobao
3 QQ


for循环使用else语句

for n in range(0, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')


break和continue语句

break语句能强制跳出for和while的当前循环体,continue会跳过当前循环块中的剩余语句,而不中止循环,而是直接执行后续的循环

#!/usr/bin/env python
for a in 'linux':
	if a == 'n':
		break
	print('当前字母为:',a)

执行结果:
	当前字母为: l
	当前字母为: i

	可看到当变量a遍历到字母n时跳出了上层if循环,未显示n及以后的字母

#!/usr/bin/env python
for a in 'linux':
        if a == 'n':
                continue
        print('当前字母为:',a)
执行结果
	当前字母为: l
	当前字母为: i
	当前字母为: u
	当前字母为: x

	可看到变量a遍历到字母n时跳过当前循环块中的剩余语句,并未中止循环,而是直接执行后续的循环,故不显示字母n


pass语句

pass是空语句,即不执行任何操作,仅是为了保证程序结构的完整性

#!/usr/bin/env python
for a in 'linux':
	if a == 'n':
		pass
		print('当前执行的是pass代码块')
	print('当前字母为',a)
else:pass

执行结果
	当前字母为 l
	当前字母为 i
	当前执行的是pass代码块
	当前字母为 n
	当前字母为 u
	当前字母为 x


简单实现一个计算器

#!/usr/bin/env python
while True:
        print("Optins:")
        print("输入add使两个数相加")
        print("输入subtract使两个数相减")
        print("输入multiply使两个数相乘")
        print("输入divide是两个数相除")
        print("输入quit退出计算器")

        get_input=input(":")

        if get_input == "quit":
                break

        elif get_input == "add":
                n1 = float(input("请输入第一个数字:"))
                n2 = float(input("请输入第二个数字:"))
                print('n1+n2的结果是',n1+n2)

        elif get_input == "subtract":
                n1 = float(input("请输入第一个数字:"))
                n2 = float(input("请输入第二个数字:"))
                print('n1+n2的结果是',n1-n2)

        elif get_input == "multiply":
                n1 = float(input("请输入第一个数字:"))
                n2 = float(input("请输入第二个数字:"))
                print('n1+n2的结果是',n1*n2)

        elif get_input == "devide":
                n1 = float(input("请输入第一个数字:"))
                n2 = float(input("请输入第二个数字:"))
                print('n1+n2的结果是',n1/n2)

        else:print("未知输入,请重新选择")


输出0~100的偶数

n = 0
while n < 101:
        if n % 2 != 0:
                pass
        else:
                print(n)
        n=n+1


输出0~100的奇数

#!/usr/bin/env python
n = 0
while n < 101:
        if n % 2 != 0:
                pass
        else:
                print(n)
        n=n+1


计算0~100所有整数的和

#!/usr/bin/env python
n=0
s=0
while n < 101:
        s=s+n
        n=n+1
print(s)


计算0~100所有偶数的和

#!/usr/bin/env python
n=0
s=0
while n < 101:
        if n % 2 == 0:
                s=s+n
        n=n+1
print(s)


求1-2+3-4+5 ... 99的所有数的和

#!/usr/bin/env python
n=0
s=0
while n < 100:
        if n % 2 != 0:
                s=s+n
        else:
                s=s-n
        n=n+1
print(s)


用户登录,有三次重试机会

#!/usr/bin/env python
count=0


while count <3:

        name=input('请输入名字:')
        passwd=input('请输入密码:')

        if name=='root' and passwd=='root':
                print('登录成功')
                break
        elif name!='root' or passwd!='root':
                print('登录失败')
        else:
                print('账户或密码输入错误已超过3次')
        count=count+1

print ('end')