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. [Stats385] Lecture 04: Convnets from Probabilistic Perspective

    本篇围绕“深度渲染混合模型”展开. Lecture slices Lecture video Reading list A Probabilistic Framework for Deep Learn ...

  2. [IR] XML Compression

    Ref: https://www.ibm.com/developerworks/cn/xml/x-datacompression/ Language-Equivalent (类似路径压缩 ) root ...

  3. 8 -- 深入使用Spring -- 6...2 Spring支持的事务策略

    8.6.2 使用XML Schema配置事务策略 Spring 同时支持编程式事务策略和声明式事务策略,通常都推荐采用声明式事务策略. ⊙ 声明式事务能大大降低开发者的代码书写量,而且声明式事务几乎不 ...

  4. android 手机 多分辨率适配

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

  5. Android开发训练之第五章第七节——Transmitting Network Data Using Volley

    Transmitting Network Data Using Volley GET STARTED DEPENDENCIES AND PREREQUISITES Android 1.6 (API L ...

  6. SQL Server 2012 R2升级到SQL Server 2016无法正常启动数据库服务解决方案

    原定周末把公司的TFS升级到2018,由于TFS 2018需要SQL Server至少是2016以上版本,所以还需要将原来的SQL Server 2012 R2一并升级.今天早上负责的同事告诉我升级失 ...

  7. python string.py 源码分析 二:capwords

    def capwords(s, sep=None): """capwords(s [,sep]) -> string Split the argument into ...

  8. python 闭包用法

    def make_addr(addend): def addr(augend): return augend + addend return addr p = make_addr(23) q = ma ...

  9. 【2017.12.12】deepin安装U盘制作,支持 BIOS+UEFI,deepin_Recovery+Win PE

    U盘要求为 FAT32,MBR分区表 如果需要放 4GB 大文件,可以分两个分区,第一分区FAT32格式,放启动相关文件,第二个分区用 NTFS 格式,放其它资料. 最新 Win10 支持显示 U盘 ...

  10. Goroutines

    Go 语言中的并发可以用两种方式实现: 第一种方式,支持顺序通信进程(communicating sequential processes),简称 CSP.CSP是一种现代的并发编程模型,在这种编程模 ...