程序执行有三种方式:顺序执行、选择执行、循环执行

一、if条件判断

1、语句  

  (1)简单的 if 语句
  (2)if-else 语句
  (3)if-elif-else 结构
  (4)使用多个 elif 代码块if-elif-elif-...-else(elif可以使用多个)
  (5)省略 else 代码块if-elif-elif(else可以省去)
  (6)测试多个条件(简单if语句)

2、注意:

  (1)if 语句可以相互嵌套;

  (2)if嵌套,可以嵌套多层,但是一般嵌套两层就行了,如果嵌套多层的话不便维护代码,若需要嵌套多层,肯定可以用其它方式代替多层嵌套这种方式。

3、实例1:

#if嵌套用法
names = ["李国祥","任彦忠","毕洪态","张立佳"]
password = 123
name = input("请输入您的名字:")
if name in names:
passwd = int(input("请输入密码:"))
if passwd == password:
print("欢迎光临!")
else:
print("密码错误,请重新输入!")
elif name == "游客":
print("欢迎加入!")
else:
print("请输入正确的用户名!")
print("人生苦短,我学python!")

4、实例2:猜年龄

#在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了
my_age = 18
guess_age = int(input("请猜测我的年龄:"))
if guess_age == my_age:
print("恭喜您才对了!奖励大大滴")
elif guess_age <= my_age:
print("猜小了,人家已经成年了")
else:
print("猜大了,我有那么老么?")

外层变量,可以被内层代码使用;

内存变量,不应被外层代码使用。

二、while循环

一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成

循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环

实例1:1~100的累加求和

#计算1~100的累计和
i = 1
sum = 0
while i <= 100:
sum = sum + i
i += 1
print("1~100的累积和为:%d"%sum)

实例2:99乘法表

i = 1
while i <= 9:
j = 1
while j <= i:
print("%d*%d=%d\t"%(j,i,i*j),end="")
j +=1
print("")
i +=1

实例3:打印1~100之间的偶数

#输出1-100之间的所有偶数
i = 1
while i <= 100:
if i%2 == 0:
print("i==%d"%i)
i += 1

实例4:猜年龄,只有3次机会

my_age = 18
count = 0
while count < 3:
guess_age = int(input("请猜测我的年龄:"))
if guess_age == my_age:
print("恭喜您才对了!奖励大大滴")
break
elif guess_age < my_age:
print("猜小了,人家已经成年了")
else:
print("猜大了,我有那么老么?")
count += 1
else:
print("猜这么多次都没才对,你个笨蛋")

实例5:

count = 0
while True:
print("你是风儿我是沙,缠缠绵绵到天涯...",count)
count +=1
if count == 100:
print("去你妈的风和沙,你们这些脱了裤子是人,穿上裤子是鬼的臭男人..")
break

三、for循环

  像while循环一样,for可以完成循环的功能。
  在Python中 for循环可以遍历任何序列的项目,如一个列表、字符串、元组等等。
  for循环的格式:
  for 临时变量 in 列表或者字符串等:
    循环满足条件时执行的代码
  else:
    循环不满足条件时执行的代码

实例1:遍历

name = "python"
for i in name:
print("----------------------")
print(i)

实例2:continue、break

continue的作用:用来结束本次循环,紧接着执行下一次的循环

break的作用:用来结束整个循环

for i in range(10):
if i<5:
continue #不往下走了,直接进入下一次loop
print("loop:", i )
------------------------------------------------------------------
loop: 5
loop: 6
loop: 7
loop: 8
loop: 9
for i in range(10):
if i>5:
break #不往下走了,直接跳出整个loop
print("loop:", i )
------------------------------------------------------------------
loop: 0
loop: 1
loop: 2
loop: 3
loop: 4
loop: 5
#pass,continue,break

#continue跳过本次循环进入下一次循环
count = 0
while count <= 5 :
count += 1
if count == 3:
continue
print("Loop", count) #breck跳出循环体
count = 0
while count <= 5 :
count += 1
if count == 3:
break
print("Loop", count) # pass用来占位的%s,%d,{}
count = 0
while count <= 5 :
count += 1
if count == 3:
pass
print("Loop", count)

实例3:猜拳游戏

#猜拳游戏
import random
win = 0
lose = 0
ping = 0
while True:
print('=====欢迎来猜拳=====')
print('胜:{} 败:{} 平:{}'.format(win, lose, ping))
print('1.石头 2.剪刀 3.布 4.退出')
computer = random.choice(['石头','剪刀','布'])
hum = input('==>:')
#赢
if (hum == '1' and computer == '剪刀') or (hum == '2' and computer =='布') or (hum == '3' and computer == '石头'):
print('挺牛逼!')
win += 1 #输
elif hum == '3' and computer == '剪刀' or hum == '1' and computer =='布' or hum == '2' and computer == '石头':
print('菜鸡!')
lose += 1
#平
elif hum == '2' and computer == '剪刀' or hum == '3' and computer =='布' or hum == '1' and computer == '石头':
print('不要走,决战到天亮')
ping += 1
elif hum == '4':
break
else:
print('别瞎输入!!')
print()
print()
print()
print()

实例4:用户登录验证

第一种方法:
#输入用户名和密码,认证成功后显示欢迎信息,输错三次后锁定
user_info = {'任彦忠':'123','ryz':'123','renyz':'ryz'}
count = 0
while count < 3:
user_name = input("请输入您的用户名:").strip()
if user_name in user_info.keys():
twice_count = count
while twice_count < 3:
pass_word = input("请输入您的密码:").strip()
if pass_word == user_info.get(user_name):
print("欢迎登陆")
exit()
else:
print("密码错误,请重新输入")
twice_count += 1
count = twice_count
else:
print('请输入正确的用户名!')
count += 1
continue
else:
print("您已经输错三次了,请稍后重试")
第二种方法:
count = 1 # 定义循环的次数,初始值为1
user = 'test'
pwd = '123'
while True:
# 当循环的次数等于4时,结束循环。count的值经过自加1操作后将会依次走1,2,3这三个数的变化,这就是3次了。
if count == 4:
print('Too many times!') # 当超过3次了,提示用户超过尝试登陆次数过多了。
break
username = input('Please enter your username:').strip() # 去除用户输入时字符串两边的空格
password = input('Please enter your password:').strip() # 去除用户输入的字符串两边的空格
# 如果用户输入的内容有值时进行以下判断
if username or password:
# 当判断用户名和密码都正确时结束循环。
if username == user and password == pwd:
print('Login successfully!')
exit() # 当用户名和密码匹配成功时退出程序
# 当判断用户名或密码不正确时走else下的条件。
else:
print('Login failed,you have %s more chances' % (3 - count))
# 如果用户输入的值为None时,则执行以下打印操作。
else:
print('Please enter your user name and password before landing')
continue # 当用户输入为空时,跳出本次循环,继续执行如下。
# 让每一次循环都进行自加1操作。
count += 1

实例五:多级菜单

#三级菜单,可依次选择进入各子菜单
data = {
"北京":{
"昌平":{
"沙河":{"oldboy","test"},
"天通苑":{"链家地产","我爱我家"}
},
"朝阳":{
"望京":{"奔驰","陌陌"},
"国贸":{"CICC","HP"},
"东真门":{"Advent","飞信"},
},
"海淀":{
"运维":{"计算机","IP"},
"云计算":{"python","java"},
"工程师":{"技术大牛","管理"},
},
},
"山东":{
"德州":{"1","2"},
"青岛":{"3","4"},
"济南":{},
},
"山西":{
"太原":{},
"大同":{},
"晋中":{},
},
}
exit_flag = False while not exit_flag:
for i in data:
print(i)
choice = input("选择进入1>>:")
if choice in data:
while not exit_flag:
for i2 in data[choice]:
print("\t",i2)
choice2 = input("选择进入2>>:")
if choice2 in data[choice]:
while not exit_flag:
for i3 in data[choice][choice2]:
print("\t\t",i3)
choice3 = input("选择进入3>>:")
if choice3 in data[choice][choice2]:
for i4 in data[choice][choice2][choice3]:
print("\t\t\t",i4)
choice4 = input("最后一层,按b返回>>:")
if choice4 == "b":
pass
elif choice4 == "q":
exit_flag = True
if choice3 == "b":
break
elif choice3 == "q":
exit_flag = True
if choice2 == "b":
break
elif choice2 == "q":
exit_flag = True

python基础之流程控制(if判断和while、for循环)的更多相关文章

  1. Python基础之流程控制if判断

    目录 1. 语法 1.1 if语句 1.2 if...else 1.3 if...elif...else 2. if的嵌套 3. if...else语句的练习 1. 语法 1.1 if语句 最简单的i ...

  2. python基础之流程控制、数字和字符串处理

    流程控制 条件判断 if单分支:当一个“条件”成立时执行相应的操作. 语法结构: if 条件: command 流程图: 示例:如果3大于2,那么输出字符串"very good" ...

  3. python基础之流程控制(2)

    今天将是基础篇的最后一篇,咱们来补上最后一个内容,流程控制for循环 For 循环 一.为什么有for循环? for循环能做的事情,while循环全都可以实现,但是在某些情境下,for循环相对于whi ...

  4. python基础之流程控制

    流程控制之----if 流程控制,是指程序在运行时,个别的指令(或者是陈述.子程序)运行或者求值的顺序.人生道路上的岔口有很多,在每个路口都是一个选择,在每个路口加上一个标签,选择哪个就是满足哪个条件 ...

  5. python基础:流程控制案例:

    1,简述编译型与解释型的语言,且分别列出你知道的哪些语言属于编译型,哪些属于解释型. 答:简单理解编译型语言类似谷歌翻译,整篇读入整篇翻译,代表语言有C语言,解释型语言类似同   声传译,读入一行翻译 ...

  6. Python入门6 —— 流程控制 - if判断

    代码块: 1.代码块指的是同一级别的代码,在python中用缩进相同的空格数(除了顶级代码块无任何缩进之外,其余代码块都是在原有的基础上缩进4个空格)来标识同一级的代码块 2.同一级别的代码块会按照自 ...

  7. python基础之流程控制(1)

    一.分支结构:if 判断 1.什么要有if 判断语句? 让计算机可以像人一样根据条件进行判断,并根据判断结果执行相应的流程. 2.基本结构 单分支结构 # 单分支 if 条件1: 代码1 代码2 代码 ...

  8. Python 基础知识----流程控制

    判断语句 循环语句 嵌套

  9. Python基础之流程控制for循环

    目录 1. 语法 2. for+break 3. for+continue 4. for循环嵌套 1. 语法 while循环可以对任何内容循环,但循环次数不可控 for循环基于容器类型的长度,循环次数 ...

随机推荐

  1. AutoAssign源码分析

    目录 AutoAssign源码分析 一. 简介 二. 论文理论 2.1 联合表示 2.2 正样本权重 2.3 负样本权重 2.4 总的loss 2.5 补充loss 三. 论文代码 四. 总结 五. ...

  2. Day13_68_中止线程

    中止线程方法一 * 在线程类中定义一个bollean类型的变量,默认值设置为ture,如果想要中断线程,只需要将该boolean类型的变量设置为false就可以了 * 代码 package com.s ...

  3. 计算机网络第一章bb测试

    错题8,31 课程 211计算机网络 测试 网络概论与体系结构 状态 已完成 尝试分数 得 340 分,满分 360 分 已用时间 14 分钟 说明 第一章 网络概论测试 显示的结果 所有答案, 已提 ...

  4. 从苏宁电器到卡巴斯基第31篇:难忘的三年硕士时光 IX

    在校的最后一个月 毕业答辩的评审老师宣布我没能通过,让我瞬间不知道该怎么好了.已经到了中午,老师们也都是准备吃盒饭去了,我和其他已经通过了的同学随便收拾了一下教室,然后无助的我赶紧去找旁听的教学秘书, ...

  5. Linux中Tomcat和Jboss的安装和部署

    目录 JDK环境 yum源安装JDK 源码包安装JDK Tomcat的安装 yum源安装 目录结构: 源码包安装 目录结构: 目录中主要的文件: JBoss的安装 目录结构: Tomcat是Apach ...

  6. UVA11078开放式学分制(前面-后面的最大值)

    题意:       给你一个长度为n的整数序列a0 a1 a2..找出两个整数ai,aj(i<j),使得ai-aj最大. 思路:       简单题目,想象一下,对于每一个数我们只要用他前面的最 ...

  7. Redis笔记整理

    Redis 遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库.数据结构服务器. 特点:     1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时 ...

  8. WPF之自定义委托命令

    常用命令 WPF的命令实际上就是实现了ICommand接口的类,平时使用最多的是RoutedCommand类,还可以使用自定义命令. RoutedCommand只负责跑腿,并不对命名目标做任何操作,实 ...

  9. 【SpringMVC】添加操作时返回400

    本博客老魏原创,如需转载请留言 问题描述: springmvc向数据库添加新的记录时,发生400错误,控制台没有抛出异常. 问题原因: 视图中的提交数据的某一个字段不不匹配导致. 解决方法: 不要怀疑 ...

  10. SecureCRT 基本设置

    1:字体与大小 Lucida Console   四号 2:声音关闭 Terminal-->Audio bell不勾选 默认网络工程师常用: Terminal-->Emulation--& ...