Python缩进原则

  • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
  • 同一级别的代码,缩进必须一致
  • 官方建议缩进用4个空格

Python程序语言指定任何非0和非空的布尔值为true,0 或者空的布尔值为false。

if判断

Python 编程中的 if判断语句用于控制程序的执行,基本形式为:

if 条件:

    子代码1

    子代码2

    子代码3

    …………

else:

    子代码4

    子代码5

    子代码6

其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。

else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句

具体举栗说明

score=input('>>: ')
score=int(score)
if score >= 90:
print('A')#用户输入的数大于等于90时走这里
elif score >=80:
print('B')#用户输入的数大于等于80时走这里
elif score >=70:
print('C')#用户输入的数大于等于70时走这里
elif score >=60:
  print('D')#用户输入的数大于等于60时走这里
else:#用户输入的数不符合以上规范时走这里
print('E')

  python 的多个条件判断,用 elif 来实现,如果需要对多个条件进行同时判断时,可以使用or和and, or (或)表示两个条件有一个成立时判断条件成功;and (与)表示只有两个条件同时成立的情况下,判断条件才成功。

num1=6
num2=10
if num1>3 and num2<20:
print('num1>3并且num2<20同时成立时走这里')
else:
print('有一个条件不满足') if num1>3 or num2<5:
print(' 只要num1>3和num2<5两者中走一个成立就走这里')
else:
print('两个条件都没有被满足')

while循环

what's the while 循环?

  当程序需要循环使用某段代码时,对这段代码进行复制粘贴就可以,可是这是极其low的方法。我们可以使用while循环。

   while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空的值均为true。当判断条件假false时,循环结束。

基本形式为:

while 条件:

  循环体的代码1
  循环体的代码2
  循环体的代码3
count=0
while count < 10:
print(count)
count+=1 while True: #死循环
print('ok') while 1: #死循环
print('ok')

  当while的条件始终为True或1(1就代表True,0代表False)时,循环就进入了死循环,即循环永远不会结束。死循环是有应用场景的,不过最后肯定需要某个机制帮助我们跳出死循环,这里就用到了break功能。

break:跳出本层循环

  break的功能就是时循环结束,无论原来的代码进行到何种程度,只要碰到break,这层缩进的代码就结束,接下来运行上一层缩进的内容。下面用代码举个栗子

count=0#初始的count值为0
while count < 10:#当count<10时执行缩进的语句
if count == 5:#当count的值等于5时执行缩进语句
break#当count的值等于5时停止循环
print(count)#当count的值不等于5时执行
count+=1#即count=count+1
print('循环结束')#停止循环后执行

continue:跳出本次循环

  continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。它与break不同的地方是break一执行本层的循环就终止了然后执行while循环之后的同级代码,而continue只是使continue以后的代码被跳过,循环继续执行,即碰到continue后本次循环结束进入下一次循环。下面用代码举个栗子

#输出0123789
count=0#初始的count值为0
while count < 10:#当count<10时执行缩进语句
if count >=4 and count <=6:#当count大于等于4并且小于等于6时执行缩进语句
count += 1#count=count + 1
continue#本次循环结束,以下代码不执行,返回while位置
print(count)
count+=1

while循环也可以和else连用,并且在最后执行,而且只能在while循环没有break打断的情况下才执行。

嵌套的定义:在循环中又套用了循环,具体实例会在下面的习题中出现

for循环

what's the for 循环?

  与while类似也是循环语句,for循环可以遍历任何序列的项目,可循环取出字符串、列表、元祖、字典中的各元素。

基本的语法格式为

for iterating_var in sequence:
statements(s)

用代码举栗说明

msg1='hello'
msg2=['a','b','c','d','e']
msg3=('a','b','c','d','e')
for i in range(len(msg1)):#range是范围,即当i在msg1的长度范围以内时执行以下代码
print(i,msg1[i])#输出的是元素的位置序数和元素
#结果为1 h
# 2 e
# 3 l
# 4 l
# 5 o #range顾头不顾尾,默认从0开始
for i in range(1,10,1):#最后一个1的意思是步距为1
print(i) #for循环也可与break、continue、else连用,方法与while相似

用for循环对字典进行遍历

#循环取字典的key
for k in info_dic:
print(k)
#循环取字典的value
for val in info_dic.values():
print(val)
#循环取字典的items
for k,v in info_dic.items(): #k,v=('name', 'egon')
print(k,v)

这里利用for循环顺便补充几个小知识点

albums = ('Poe', 'Gaudi', 'Freud', 'Poe2')
years = (1976, 1987, 1990, 2003) #sorted:排序
for album in sorted(albums):
print(album)#字符串按长度排序 #reversed:翻转
for album in reversed(albums):
print(album) #enumerate:返回项和
for i in enumerate(albums,100):#默认从0开始
print(i)
'''(100, 'Poe')
(101, 'Gaudi')
(102, 'Freud')
(103, 'Poe2')''' #zip:组合,一一对应并以元祖的形式返回
for i in zip(albums,years):
print(i)
'''('Poe', 1976)
('Gaudi', 1987)
('Freud', 1990)
('Poe2', 2003)'''

for循环和while循环一样都可以进行嵌套,下面用一个九九乘法表作为举例。

for line in range(1,10):
for row in range(1,line+1):
print('%s*%s=%s'%(line,row,line*row),end=' ')
print()
#print默认end='\n',即会自动回车,这里设置end=' '就不会自动换行了

这里插一个小知识点

占位符:%s(可以为字符串占也可以为数字),%d(只能作为数字的占位符)。

占位符即实现占位用的,之后可以进行传值。传值方式如上面的九九乘法表中所示,每个占位符只能传一个值

习题

最后引入几道习题,帮助更好的了解while循环

习题一:输出1到100所有的数字

#使用while循环
count=0
while count<=100:#只要比100小就不断执行以下代码
print('number',count)
count+=1#即每执行一次就把count+1
#当count>100时,判断就为false,自动跳出循环 #使用for循环
for i in range(101):#顾头不顾尾
print(i)

习题二:输出1到100内的所有偶数,包括100

#使用while循环
count = 0
while count <= 100 :
if count % 2 == 0:#是偶数
print('number',count)
count+=1 #使用for循环
for i in range(1,101):
if i%2==0:
print(i)

习题三:输出1到100内的所有奇数,包括100

#使用while循环
count = 0
while count <= 100 :
if count % 2 == 1:#是奇数
print('loop',count)
count+=1 #使用for循环
for i in range (1,100):
if i%2==1:
print(i)

习题四:输出1-2+3-4+5-6+7-8....+99的和

sum=0
for i in range(1,100):
if i%2==1:
sum+=i
elif i%2==0:
sum+=-i
print(sum)

习题五:输出1-9,并在最后输出一段话

count=0
while count < 10:
if count == 3:
count+=1
continue
print(count)
count+=1
else: #最后执行
print('在最后执行,并且只有在while循环没有被break打断的情况下才执行') #
#
#
#
#
#
#
#
#
#在最后执行,并且只有在while循环没有被break打断的情况下才执行

习题六:用户登录程序交互小习题

while True:#死循环
name=input('please input your name: ')#让用户自行输入名字
password=input('please input your password: ')#让用户自行输入密码 if name == 'jack' and password == '':#如果输入的名字为jack并且密码是123
print('login successfull')#输出登陆成功
while True:#死循环
cmd=input('>>: ')#让用户输入命令
if cmd == 'quit':#如果输入的命令是quit的话
break#本层死循环结束,即内层死循环结束
print('====>',cmd)#如果输入的命令不是quit的话,打印输入的命令
break#本层死循环结束,即外层死循环结束
else:#如果输入的名字不为jack或者密码不是123
print('name or password wrong') #输出错误,并重新输入名字和密码

习题七:猜年龄的游戏

#允许猜3次乔布斯的年龄
JOBS_AGE=55#定义一个常量,乔布斯55岁
count=1#次数为1
while True:#死循环
if count>3:#当次数超过3时
break#循环结束
age=input('猜猜年龄:')#用户交互,让用户输入他猜的年龄
age=int(age)#输入的内容是字符串的格式,需强转成数字格式才可与数字进行比较
if age>JOBS_AGE:
print("你猜的太大啦")
elif age<JOBS_AGE:
print("你猜的太小啦")
else:
print("恭喜你猜对了")
break#猜对了以后执行,即循环结束
count+=1#没猜对的情况下count会加1,当count>3的时候就不让猜咯

进阶大作业一:实现简易购物清单

  要求如下:给出以下购物列表,用户输入想要购买的物品,之后让用户输入想要购买该物品的数量,打印物品名、价格即数量。用户可循环输入

msg_dic={
'iPhone':4000,
'apple':10,
'mac':8000,
'lenovo':3000,
'chicken':28
}

msg_dic={
'iPhone':4000,
'apple':10,
'mac':8000,
'lenovo':3000,
'chicken':28
}
goods_l=[]
while True:
for k in msg_dic:
print('NAME:<{name}> PRICE:<{price}>'.format(name=k,price=msg_dic[k]))
name=input('please input your goods name:').strip()
if len(name)==0 or name not in msg_dic:continue
while True:
count=input('please input your count:').strip()
if count.isdigit():break
goods_l.append((name,msg_dic[name],int(count)))
print(goods_l)

简易购物清单

进阶大作业二:实现简易工资条

  要求如下:给出一个系统让用户输入自己的名字、密码、工资和工作时长,系统中可供用户查询自己的总工资和用户身份,查询结束后可退出程序。(jobs是顶级用户(super user),cook和cue是普通用户(normal user),其他皆为不知名用户(unknown user)

tag = True
while tag:
user = input("请输入用户名:")
if user == "":
print("用户名不能为空,请重新输入:")
continue
password = input("请输入密码:")
if password == "":
print("密码不能为空,请重新输入:")
continue
work = input("请输入工作了几个月")
if work == "" or work.isdigit() == False:
print("工龄不能为空且必须为整数,请重新输入:")
continue
money = input("请输入工资:")
if money == "" or money.isdigit() == False:
print("工资不能为空且必须为整数,请重新输入:")
continue
print(
'''
1查询总工资
2查询用户身份
3退出程序
'''
)
while tag:
choose = input('>>')
if choose == "" or choose.isdigit() == False:
print("输入有误,请重新输入")
continue
if choose == '':
print('''
总工资为:%s
1查询总工资
2查询用户身份
3退出程序 ''' % (int(work)*int(money)))
elif choose == '':
if user == 'jobs':
print('''
super user
1查询总工资
2查询用户身份
3退出程序
''')
elif user == 'cook' or 'cue':
print('''
normal user
1查询总工资
2查询用户身份
3退出程序
''')
else:
print('''
unknow user
1查询总工资
2查询用户身份
3退出程序
''')
elif choose == '':
tag = False
continue
else:
print('没有这个选项')
continue

简易工资条

进阶大作业三:实现省市县三级菜单

  要求如下:给出一个三级菜单,要求能循环输出省、市、县

menu = {
'浙江省':{
'杭州市':{
'西湖区':{
'西湖':{},
'雷峰塔':{},
'宋城':{}
},
'临安区':{
'天目山':{},
'大明山':{},
'白水涧':{},
},
'萧山区':{
'机场':{},
},
},
'余杭区':{
'西溪湿地':{}, '良渚遗址':{},
'塘栖古镇':{},
},
'上城区':{},
'下城区':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}

三级菜单格式

menu = {
'浙江省':{
'杭州市':{
'西湖区':{
'西湖':{},
'雷峰塔':{},
'宋城':{}
},
'临安区':{
'天目山':{},
'大明山':{},
'白水涧':{},
},
'萧山区':{
'机场':{},
},
},
'余杭区':{
'西溪湿地':{}, '良渚遗址':{},
'塘栖古镇':{},
},
'上城区':{},
'下城区':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
} exit_flag = False
current_layer = menu layers = [menu]
print(layers)
while not exit_flag:
for k in current_layer:
print(k)
choice = input(">>:").strip()
if choice == "b":
current_layer = layers[-1]
#print("change to laster", current_layer)
layers.pop()
elif choice not in current_layer:continue
else:
layers.append(current_layer)
current_layer = current_layer[choice]

省市县三级菜单

what's the python之if判断、while循环以及for循环的更多相关文章

  1. python学习——如何判断输入是数字

    笨办法学python第35节 该节主要是讲分支与函数,主要遇到的问题是python中如何判断输入是数字. 首先原代码如下: from sys import exit def gold_room(): ...

  2. python(1) - 条件判断和循环

    条件判断: 比如输入用户年龄,根据年龄打印不同的内容,在python中用if语句实现: age = 20 if age >= 18: print('你可以看这个视频!') 可以给if加一个els ...

  3. python之--条件判断和循环

    Python之判断 和其他语言一样,python同样具有条件判断和循环的操作,比如我们可以编写一个简单的判断操作:使用if关键字可以达到判断的效果,如下例: >>> test_if ...

  4. Python的if判断与while循环

    1.if判断 Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句 else: 执行语句 Python中使用缩进代替c语言中的大括号,来告诉程序所执行的内容. ...

  5. python中的判断语句与循环语句

    if语句 每条if语句的核心都是一个值为Ture或False的表达式,这种表达式被称为为条件测试.if语句检查程序当前状态,并据此采取相应的措施.如果条件测试的值为Ture,Python就执行紧跟在i ...

  6. Python基础——条件判断

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 到目前为止,Python基础系列的文章中的程序都是一条一条语句顺序执行的.在本章中,我会重点介绍让程序选择是否执行语 ...

  7. Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中

    Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中 python 的基本用法请浏览:https://www.cnblogs.com/ibingshan/p/98564 ...

  8. Python isinstance 方法 判断 built-in types(内置类型)技巧

    Python isinstance 方法 判断 built-in types(内置类型)技巧 d = {} isinstance(d, type({})) isinstance(d, dict) l ...

  9. Python startswith() 函数 判断字符串开头

    Python startswith() 函数 判断字符串开头 函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头 一.函数说明语法:string.startswith(str ...

随机推荐

  1. 大杂烩 -- 四种生成和解析XML文档的方法详解

    基础大杂烩 -- 目录 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J DOM:在现在的Java JDK里都自带了,在xml-apis.jar包 ...

  2. android 手机 多分辨率适配

    近来在做android屏幕适配这方面的工作, 今天总算有点眉目.  小记一下 基础知识就不科普了, 网上一大堆. 作为一个刚接触这方面人, 最先进入我脑子的, 是从小到大的各种屏, 小到手表, 大到街 ...

  3. Http 调用netty 服务,服务调用客户端,伪同步响应.ProtoBuf 解决粘包,半包问题.

    实际情况是: 公司需要开发一个接口给新产品使用,需求如下 1.有一款硬件设备,客户用usb接上电脑就可以,但是此设备功能比较单一,所以开发一个服务器程序,辅助此设备业务功能 2.解决方案,使用Sock ...

  4. Bitmap(三)

    转自:http://www.open-open.com/lib//view/open1333418945202.html Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文 ...

  5. h5 打造全屏体验 element.requestFullscreen()

    google打造全屏体验 https://developers.google.cn/web/fundamentals/native-hardware/fullscreen/ 以前github上的 ht ...

  6. Java基础语法<七> 对象与类 封装

    笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 1. 类之间的关系 1.1 依赖 users– a 是一种最明显的.最常见的关系.如果一个类的方法操作另一个 ...

  7. 别致的语言GO(GO语言初涉)

    最近由于各种原因(好吧,其实是犯懒)已经许久没有再写新的博文了!最近正好在学习一门新的语言,所以正好记录一下自己的学习成果!最近利用每天晚上下班回来后的几小时,学习了Google开发的Go语言,算是对 ...

  8. Selenium模拟浏览器抓取淘宝美食信息

    前言: 无意中在网上发现了静觅大神(崔老师),又无意中发现自己硬盘里有静觅大神录制的视频,于是乎看了其中一个,可以说是非常牛逼了,让我这个用urllib,requests用了那么久的小白,体会到sel ...

  9. 转:关于ROWNUM的使用

    转载自:原文:https://blog.csdn.net/songsenkeji/article/details/4432942 ROWNUM的概念ROWNUM是一个虚假的列.它将被分配为 1,2,3 ...

  10. jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

    jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...