一、if条件判断语句
比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
多条件判断
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
age = 20
if age >= 6:
print('teenager')
elif age >= 18:
print('adult')
else:
print('kid')
练习: 需求一、用户登陆验证
#!/usr/bin/env python
#-*- coding:utf-8 -*-
name = input('请输入用户名:')
pwd = input('请输入密码:')
if name == "alex" and pwd == "cmd":
print ("欢迎,alex!")
else:
print ("用户名和密码错误")
需求二、根据用户输入内容输出其权限 根据用户输入内容打印其权限
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#alex --> 超级管理员
#eric --> 普通管理员
#tony,rain --> 业务主管
#其他 --> 普通用户
name = input('请输入用户名:')
if name == "alex":
print ("超级管理员")
elif name == "eric":
print ("普通管理员")
elif name == "tony" or name == "rain":
print ("业务主管")
else:
print ("普通用户")
**二、for...in和while循环 **
为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。
Python的循环有两种:for..in循环和while循环
1.for...in循环 依次把list或tuple中的每个元素迭代出来,看例子:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
执行这段代码,会依次打印names的每一个元素:
Michael
Bob
Tracy
所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。
再比如我们想计算1-10的整数之和,可以用一个sum变量做累加:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:
>>> list(range(5))
[0, 1, 2, 3, 4]
range(101)就可以生成0-100的整数序列,计算如下:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
sum = 0
for x in range(101):
sum = sum + x
print(sum)
请自行运行上述代码,看看结果是不是当年高斯同学心算出的5050。
2、while循环: 只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现: 循环分为有限循环和死循环。 1)有限循环
#!/usr/bin/env python
#-*- coding: utf-8 -*-
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。
死循环
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import time #加载time模块
while True:
print ('hello')
time.sleep(1) #让它每秒执行一次
练习 实例1 无限打印1.2.3.4...........
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import time
n = 1
while True :
print (n)
n = n + 1
time.sleep(1)
print ('end')
实例2 输出10以内的所有正整数
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import time
n = 1
while n <= 10 :
print (n)
n = n + 1
time.sleep(1)
print ('end')
实例3
求1-100的所有数的和
#!/usr/bin/env python
#-*- coding: utf-8 -*-
a = 0
n = 1
while n <= 100:
a = a + n
n = n + 1
print (a)
实例4 让用户输入用户名和密码,有三次输错的机会,如果达到三次错误后会问用户是否再次尝试,如果登陆成功会显示登陆成功的提示。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
name = "mrxiong"
pas = "123456"
counter = 0
while counter < 3:
username = input('请输入你的用户名:')
userpas = input('请输入密码:')
if username == name and userpas == pas:
print('welcome')
break
else:
print('账号或密码错误,请重新输入')
counter += 1
if counter == 3:
keep_going = input("你输入错误次数己达到三次,还需要重新尝试输入吗?[y/n]")
if keep_going == "y":
counter = 0
else:
exit("你输入有误,goodby!")
print("登陆成功")
三、break和continue使用
**1、break ** 用于跳出当前循环,并且break下面的代码将不在执行
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import time
n = 1
while True :
print (n)
if n == 10:
break
n = n + 1
time.sleep(1)
2、continue 用于跳出本次循环,继续下一次循环
#!/usr/bin/env python
#-*- coding: utf-8 -*-
i = 0
while i < 10:
i += 1
if i == 4:
pass
if i == 6:
continue
if i == 8:
break
print(i)
else:
print("It is over!")
结果:1 2 3 4 5 7 跳过了6,进入7的循环,到8时跳出了循环。