三. python 循环if,while,for....

一 .if流程控制语句

if语句:

       格式:

if表达式:

     语句

1. if语句

#练习if语句
aa=int(input("请你输入一个数是否是奇偶:"))
if aa%2==0:
    print("是偶数")
else:
    print("是奇数")

2. if语句else

#练习if语句
aa=int(input("请你输入一个数是否是奇偶:"))
if aa%2==0:
    print("是偶数")
else:
    print("是奇数")
#水仙花数
# aa=153%10      #3  各位
# aa=153//10    #15
# aa=153//10%10 # 5  十位
#aa=153//100     #1  百位
#求水仙花树
num =int(input("请输入一个数:"))
aa=num%10
bb=num//10%10
cc=num//100

if num==aa**3+bb**3+cc**3:
  print("是水仙花数")
else:
  print("不是一个水仙花数")
案例一水仙花数
#找最大值
num1=int(input())
num2=int(input())
num3=int(input())
max=num1  #假设 
if num2>num1:
    max=num2
if num3>max:
    max=num3
print("max=",max)
案例找最大值

 二 .if ..elif..流程控制语句

 if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:

if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
num = 5     
if num == 3:            # 判断num的值
    print 'boss'        
elif num == 2:
    print 'user'
elif num == 1:
    print 'worker'
elif num < 0:           # 值小于零时输出
    print 'error'
else:
    print 'roadman'     # 条件均不成立时输出 
#!/usr/bin/env python

name=input('请输入用户名字:')
password=input('请输入密码:')

if name == 'egon' and password == '123':
    print('egon login success')
else:
    print('用户名或密码错误')

练习一:用户登陆验证
用户登陆验证
#!/usr/bin/env python
#根据用户输入内容打印其权限

'''
egon --> 超级管理员
tom  --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''
name=input('请输入用户名字:')

if name == 'egon':
    print('超级管理员')
elif name == 'tom':
    print('普通管理员')
elif name == 'jack' or name == 'rain':
    print('业务主管')
else:
    print('普通用户')

练习二:根据用户输入内容输出其权限
根据用户输入内容输出其权限
三 .流程控制之while循环
1. while循环
while 条件:    
    # 循环体
    # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
    # 如果条件为假,那么循环体不执行,循环终止
count=0
while count <= 10:
    print('loop',count)
    count+=1
打印0-10
count=0
while count <= 10:
    if count%2 == 0:
        print('loop',count)
    count+=1
打印0-10之间的偶数
num=0
while num<5:
 num=num+1
 print(num)
# 1
# 2
# 3
# 4
# 5
输出一到五的值
#  # 
sum=0
num=1
while num<=100:
 sum+=num
 num+=1
print(sum)  #5050
计算100一百的和
# # 
str="ABCDEFGAAAAAAAAAAA"
index=0
while index<len(str):
 print( index,str[index])
 index+=1
 
# 1 ==== B
# 2 ==== C
# 3 ==== D
# 4 ==== E
# 5 ==== F
# 6 ==== G
打印字符串每一个
# 输出所有三位数的水仙花数

num=100
while num<=999:
 a=num%10
 b=num//10%10
 c=num//100
 if num==a**3+b**3+c**3:
    print(num)

 num+=1
# 153
# 370
# 371
# 407
水仙花数
str=input("请输入字符串:")
index=0
sum=0
while index<len(str):
    if str[index]>="0" and str[index]<="9":
         sum+=int(str[index])
    index+=1
print(sum)

# 字符串比较大小是比的ASCII的值
计算字符串的下标的和
tag=True 

  while tag:

    ......

    while tag:

      ........

      while tag:

        tag=False
循环嵌套
#与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句,while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
count = 0
while count <= 5 :
    count += 1
    print("Loop",count)

else:
    print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------

#如果执行过程中被break啦,就不会执行else的语句啦
count = 0
while count <= 5 :
    count += 1
    if count == 3:break
    print("Loop",count)

else:
    print("循环正常执行完啦")
print("-----out of while loop ------")
输出

Loop 1
Loop 2
-----out of while loop ------
2.死循环
import time
num=0
while True:
    print('count',num)
    time.sleep(1)
    num+=1 
# 死循环   表达式永远为真的循环
while 2:
    print("哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈")
var = 1
while var == 1 :  # 该条件永远为true,循环将无限执行下去
   num = raw_input("Enter a number  :")
   print "You entered: ", num
 

 四. 流程控制之for循环

1 .for 语句

格式: 

for 变量名 in 集合
语句

for  aa in 'Python':     # 第一个实例
   print ('当前字母 :', aa)

# 当前字母 : P
# 当前字母 : y
# 当前字母 : t
# 当前字母 : h
# 当前字母 : o
# 当前字母 : n
for循环字符串
fruits = ['banana', 'apple',  'mango']
for bb in fruits:        # 第二个实例
   print ('当前字母 :', bb)
# 当前字母 : banana
# 当前字母 : apple
# 当前字母 : mango
for循环列表
# range() 函数   列表生成器
# 功能:生成数列
print(range(10))  #range(0, 10)
for aa in range(5):   
   print(aa)  #0 1 2 3 4
for循环与range生成器函数
for b in range(2,20,2):   
  print(b)  #
# 2
# 4
# 6
# 8
# 10
# 12
# 14
# 16
# 18
for与range

使用for循环同时遍历元素下标

numerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
Python 2.3. 以上版本可用,2.6 添加 start 参数
# enumerate(sequence, [start=0])
参数
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置

seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
    print (i, element)
# 0 one
# 1 two
# 2 three
# for  循环求一加到100
sum=0 
for a in range(1,101): #5050
   sum+=a
print(sum)
五 .break语句

break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,

也会停止执行循环语句。
break语句用在while和for循环中。

注意:只能结束最近的循环   就是当前循环

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
for letter in 'Python':     # 第一个实例
   if letter == 'h':
      break
   print ('当前字母 :', letter)

#  当前字母 : P
# 当前字母 : y
# 当前字母 : t
var = 10                    # 第二个实例
while var > 0:              
   print ('当前变量值 :', var)
   var = var -1
   if var == 5:   # 当变量 var 等于 5 时退出循环
      break
# 当前变量值 : 10
# 当前变量值 : 9
# 当前变量值 : 8
# 当前变量值 : 7
# 当前变量值 : 6
# 
break案例
# 注意循环中可以有else语句 break导致循环截止  不会执行else里的语句
num=1
while num<=10:
    print(num)    # 1 2 3
    if num==3:  
      break
    num+=1
else:
    print("因为有braek就不会执行else中的语句")
六 . continue语句

 Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
当前最近的循环

# 
var = 10                    # 第二个实例
while var > 0:              
   var = var -1
   if var == 5:
      continue
   print ('当前变量值 :', var)

# 当前变量值 : 9
# 当前变量值 : 8
# 当前变量值 : 7
# 当前变量值 : 6
# 当前变量值 : 4
# 当前变量值 : 3
# 当前变量值 : 2
# 当前变量值 : 1
# 当前变量值 : 0
for letter in 'Python':     # 第一个实例
   if letter == 'h':
      continue
   print ('当前字母 :', letter)
# 当前字母 : P
# 当前字母 : y
# 当前字母 : t
# 当前字母 : o
# 当前字母 : n
# 
#break用于退出本层循环
while True:
    print "123"
    break
    print "456"

#continue用于退出本次循环,继续下一次循环
while True:
    print "123"
    continue
    print "456"
七 .练习for ,while , for break ,continue
#1. 使用while循环输出1 2 3 4 5 6     8 9 10
#2. 求1-100的所有数的和
#3. 输出 1-100 内的所有奇数
#4. 输出 1-100 内的所有偶数
#5. 求1-2+3-4+5 ... 99的所有数的和
#6. 用户登陆(三次机会重试)
#7:猜年龄游戏
要求:
    允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
#8:猜年龄游戏升级版 
要求:
    允许用户最多尝试3次
    每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
    如何猜对了,就直接退出 

#题一
count=1
while count <= 10:
    if count == 7:
        count+=1
        continue
    print(count)
    count+=1
    
count=1
while count <= 10:
    if count != 7:
        print(count)
    count+=1
    
#题目二
res=0
count=1
while count <= 100:
    res+=count
    count+=1
print(res)

#题目三
count=1
while count <= 100:
    if count%2 != 0:
        print(count)
    count+=1
    
#题目四
count=1
while count <= 100:
    if count%2 == 0:
        print(count)
    count+=1
    
    
    
#题目五
res=0
count=1
while count <= 5:
    if count%2 == 0:
        res-=count
    else:
        res+=count
    count+=1
print(res)
    

#题目六
count=0
while count < 3:
    name=input('请输入用户名:')
    password=input('请输入密码:')
    if name == 'egon' and password == '123':
        print('login success')
        break
    else:
        print('用户名或者密码错误')
        count+=1

#题目七
age_of_oldboy=73

count=0
while count < 3:
    guess=int(input('>>: '))
    if guess == age_of_oldboy:
        print('you got it')
        break
    count+=1

#题目八
age_of_oldboy=73

count=0
while True:
    if count == 3:
        choice=input('继续(Y/N?)>>: ')
        if choice == 'Y' or choice == 'y':
            count=0
        else:
            break

    guess=int(input('>>: '))
    if guess == age_of_oldboy:
        print('you got it')
        break
    count+=1


#打印九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print('%s*%s=%s' %(i,j,i*j),end=' ')
    print()
#分析
'''

             #max_level=5
    *        #current_level=1,空格数=4,*号数=1
   ***       #current_level=2,空格数=3,*号数=3
  *****      #current_level=3,空格数=2,*号数=5
 *******     #current_level=4,空格数=1,*号数=7
*********    #current_level=5,空格数=0,*号数=9

#数学表达式
空格数=max_level-current_level
*号数=2*current_level-1

'''

#实现
max_level=5
for current_level in range(1,max_level+1):
    for i in range(max_level-current_level):
        print(' ',end='') #在一行中连续打印多个空格
    for j in range(2*current_level-1):
        print('*',end='') #在一行中连续打印多个空格
    print()

打印金字塔
8 .三元运算符
# 三元运算符
a=6
b=2
f=a if a>b else b
print(f)
# 变量 = 条件返回True的结果 if 条件 else 条件返回Fales结果
# 6


 






















原文地址:https://www.cnblogs.com/Sup-to/p/10829026.html