python 循环

for 有截止条件的循环

基础语法:
for i in range(10);print(i)

举例说明:

version-1,循环10次猜年龄,猜对后退出。

AGE = 56
for i in range(10):
    guess_num = int(input("you guess num:"))
    if guess_num == AGE:
        print("Congratulations,you got it.")
        break
    elif guess_num > AGE:
        print("try smaller...")
    else:
        print("try bigger...")

version-2 循环10次猜年龄,猜对后退出,并且最多猜错3次,使用计数器递增限制循环次数。

AGE = 56
count = 0
for i in range(10):
    if count == 3:
        print("too many times...bye!")
        break
    guess_num = int(input("you guess num:"))
    if guess_num == AGE:
        print("Congratulations,you got it.")
    elif guess_num > AGE:
        print("try smaller...")
    else:
        print("try bigger...")
    count += 1

version-3 循环10次猜年龄,猜对后退出,并且最多猜错3次,不需要计数器递增直接使用i递增。

AGE = 56
for i in range(10):
    if i == 3:
        print("too many times...bye!")
        break
    guess_num = int(input("you guess num:"))
    if guess_num == AGE:
        print("Congratulations,you got it.")
        break
    elif guess_num > AGE:
        print("try smaller...")
    else:
        print("try bigger...")

version-4 每运行3次提示一次是否继续,计数器到达3时,根据提示重置计数器或退出

AGE = 56
count = 0
for i in range(10):
    if count == 3:
        user_confirm = input("do you want to keep guessing?").strip()
        if user_confirm == 'y':
            count = 0
        else:
            break
    guess_num = int(input("you guess num:"))
    if guess_num == AGE:
        print("Congratulations,you got it.")
        break
    elif guess_num > AGE:
        print("try smaller...")
    else:
        print("try bigger...")
    count += 1

continue

# 从1打印到10,走到5不打印
for i in range(10):
    if i == 5:
        pass
    else:
        print("loop ",i)
        

for i in range(10):
    if i == 5:
        continue
    else:
        print("loop ",i)

break 跳出当前层的整个循环,continue 跳出当前层的本次循环,进入下一次循环

循环套循环

不打印内循环中的5

for i in range(10):
    print("out loop", i)
    for j in range(10):
        if j == 5:
            continue
        print("   inner loop", j)

外循环不打印5 

for i in range(10):
    if i == 5:
        continue
    print("out loop",i)
    for j in range(10):
        print("inner loop", j)

外循环不打印5 ,内循环只打印到5 

for i in range(10):
    if i == 5:
        continue
    print("out loop",i)
    for j in range(10):
        if j == 6:
            break
        print("inner loop", j)

while 循环

import time

count = 0
t_start0 = time.time()
while True:
    count += 1
    if count == 10000000:
        break
print("cost:", time.time() - t_start0, count)


count = 0
t_start1 = time.time()
while count < 10000000:
    count += 1
print("cost:", time.time() - t_start1, count)

三级菜单

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Panjinniu

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

current_layers = menu
p_layers = []

while True:
    for k in current_layers:
        print(k)
    choice = input('>:').strip()
    if len(choice) == 0: continue

    if choice in current_layers:
        p_layers.append(current_layers)
        current_layers = current_layers[choice]

    elif choice == 'b':
        if len(p_layers) > 0:
            current_layers = p_layers.pop()

    elif choice == 'q':
        exit('bye')

 

 

 

三元运算

a = 2
b = 3
if a > b:
    c = a + b
else:
    c = a - b
print(c)
-1

c = a + b if a > b else a - b
print(c)
-1

 

posted on 2017-01-19 19:22  就是稳稳地  阅读(175)  评论(0编辑  收藏  举报