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')