有了以上的基本基础,已经上面写的几个小练习,大家肯定有很多的不满,比如查询为什么查询一次就退出了呢?下面我们来学习条件语句

一、万恶的加号

以前我们在print的时候如果要加上变量都有是使用+来作为连接,但是这样做是不好的

因为在使用加号的时候,会在内存中开辟新的内存地址来存放新的内容这样做的坏处就是增加了内存的消耗

那么我们该怎么办呢?

(1)字符串格式化

①内置占位符

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

类如上述例子我们换种写法:

>>> a = "abc"      
>>> print ("sssss%s" %(a))      
sssssabc

我们主要到这里多了一个%s这里的%s我们称之为占位符,针对数据类型的不同我们有很多占位符

②自定义占位符format函数

aa = "dsadsa{ss}"
print(aa.format(ss='ccccc'))
dsadsaccccc
在print中的ss=‘ccccc’可以替换成变量这样就不用考虑数据的类型了

二、两个变量的值的替换

在一些算法中我们需要用到将变量的值进行替换

方法1:

>>> a = 1
>>> b = 2

>>> c = a
>>> a = b
>>> b = c

>>> print (a,b)
2 1

这样我们使用另外一个变量,来暂时中转a的值这样我们多出了一个变量看起来不高端那么还有别的方法么?

方法2:

>>> a = 1
>>> b = 2
>>> print(a,b)
1 2
>>> a,b = b,a
>>> print (a,b)
2 1

是不是很好玩

三、布尔表达式

布尔表达式就是判断真假,也就是True和False,计算机的机器代码由1和0来表示所以,1表示有也表示真,0表示无也表示假。

我们来看下面的例子:

从下面的例子可以看出1等于True真的时候返回值是True真也就是对的,当0等于True的时候返回值是假也就是错的,当0等于假的时候返回值是True也就是正确。

>>> 1 == True
True
>>> 0 == True
False
>>> 0 == False
True

例2:下面的例子也可以知道,当值为空的时候,布尔表达式认成为假

>>> bool('')
False
>>> bool('a')
True

四、if语句

(1)python中的if语句跟其他语言一样也是做逻辑判断用的,比如我们要实现这么一个

需求(1):

如果用户输入的值为a则输出欢迎,否则输出翻滚吧xxx

inpot = input("请输入名称:")if inpot == "a" :print('欢迎您:%s'%(inpot))
else:print('翻滚吧:%s'%(inpot))

需求(2):

如果用户输入的值为a则输出欢迎,如果用户输入的值为b则输出欢迎主任视察,否则输出翻滚吧xxx

inpot = input("请输入名称:")if inpot == "a" :print('欢迎您:%s'%(inpot))
elif inpot == "b":print('欢迎主任[%s]视察'%(inpot))
else:print('翻滚吧:%s'%(inpot))

从上面的两个例子可以看出,python没有shell脚本中的case,而变成了if中的elif,在if语句中我们可以只使用if,而不用else。

五、while循环

为什么会存在while循环呢,因为我们需要做一些重复的事情,比如我们要打印 1-100安装常理我们不就需要print 1 print 2 。。。。。print100非常的浪费代码所以呢我们可以这么干

(1)while循环-计数器

x = 1  #先设置一个变量的值为1
while x <= 100: #当x的值小于等于100时运行下面的代码print(x)    #打印x的值x = x+1     #每次循环x都加1 ,第一次循环就是 x(1)+1= 2 第二次就是x(2)+1=3以此类推
这样的语句方式称之为计数器
(2)while死循环
我们知道布尔表达式中的真,这里我们可以跟while结合变成一个死循环,那么死循环不是一直都在运行的么,
那怎么办,python提供break可以退出当前循环,我们结合之前的练习来试一下
练习1:
需求:写一个输入员工姓名就可以查询到员工的电话和编号的程序,要求可以持续查询,除非用户输入退出的命令则结束
python3.5环境
#!/usr/bin/env python
# -*- coding:utf-8 -*-
address = {'a':{'number':'01','phone':'110'},'b':{'number':'02','phone':'119'},'c':{'number':'03','phone':'120'}
}
while True:inpu = input("请输入查询的用户名:")if inpu in address.keys():         #address.keys()表示获取字典的所有key(键)print("当前用户:%s"%(inpu))print('用户编号是:%s'%(address[inpu]['number']))print('用户电话是:%s'%(address[inpu]['phone']))elif inpu == "exit" :print('谢谢使用再见')breakelse:print("您输入的用户[%s]不存在"%(inpu))
六、for循环

(1)初识for循环

while语句非常的灵活,但是有些特定条件while循环使用起来非常复杂,比如说有一个列表,想要分别打印列表中的内容,用while也可以实现,但是就没有for循环那么简单了,
我们来对比一下我们有一个列表 a = ['a','b','c','d']我们分别用while和for来打印出列表中的每个元素
while:
a = ['a','b','c','d']
x = 0
while x < len(a):  #len(a)的值为4,那么列表a的索引是从0-3的所以这里是x小于len(a)print(a[x])x = x+1
for:
a = ['a','b','c','d']
for i in a:print(i)
对比之后呢至少for循环少了两行代码
for循环代码中的  for i in a:表示i从头到a序列中取值,所以第一次循环 i = a第二次 i = b以此类推
(2)range函数
还记得while循环打印1-100么,这里我们可以使用for加range函数来实现:
for i in range(1,101):  #为什么这里写1-101,因为range函数的特性,如果是1-100他就会生成1-99print(i)            #所以这里是1-101
range函数的工作方式类似于分片
(3)for循环字典
注:字典元素的顺序没有定义的,也就是说当你for循环出来的字典的键值对是没有顺序的
方法1:
a = {"a":"aa","b":"bb","c":"cc"
}
for key in a:print ('欢迎【%s】,您的信息是(%s)'%(key,a[key]))
方法2:
a = {"a":"aa","b":"bb","c":"cc"
}
for key,value in a.items():print ('欢迎【%s】,您的信息是(%s)'%(key,value))

结果

第二种发放使用到了items函数,也就是把字典a转换成了([('b', 'bb'), ('a', 'aa'), ('c', 'cc')])这种结构在分别赋值给key和value

七、跳出循环

(1)break,之前介绍过的跳出当前循环

(2)contiune一般用于if语句,也就是说进入当前的判断后没必要继续判断下去就可以使用它

例子:

for i in range(1,6):if i == 3 :print('ok')  continue    #当i等于3时,输出ok并且结束此次判断也就是不执行else了else:print(i)

结果:

(3)pass

跟英文的意思一样过掉,什么都不做

for i in range(1,6):if i == 3 :print('ok')continueelif i == 4 :passelse:print(i)

结果

八、运算

python中有非常多的运算这里推荐网站:http://www.runoob.com/python/python-operators.html

Python算术运算符

Python比较运算符

Python赋值运算符

Python位运算符

Python逻辑运算符

Python成员运算符

Python身份运算符

Python运算符优先级

转载于:https://blog.51cto.com/liumingyuan/1740948

Python成长之路第一篇(4)_if,for,while条件语句相关推荐

  1. 我的Python成长之路---第一天---Python基础(5)---2015年12月26日(雾霾)

    六.流程控制 与C语言不通的事Python的流程控制的代码块不是用{}花括号表示的,而是用强制缩进来,而且缩进必须一致,官方推荐是使用4个空格,不建议使用使用tab(制表符)做缩进,一是不同的系统ta ...

  2. Python人工智能之路 - 第一篇 : 你得会点儿Python基础

    Python 号称是最接近人工智能的语言,因为它的动态便捷性和灵活的三方扩展,成就了它在人工智能领域的丰碑 走进Python,靠近人工智能 一.编程语言Python的基础 之 "浅入浅出&q ...

  3. Python成长之路第二篇(3)_字典的置函数用法

    字典的置函数用法(字典dict字典中的key不可以重复) class dict(object): """ dict() -> new empty dictionar ...

  4. python入门之玩转列表我的菜单_我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)...

    #!/usr/bin/env python3#coding:utf-8 '''Created on: 2015年12月30日 @author: 张晓宇 Email: 61411916@qq.com V ...

  5. Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程–>错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个人 ...

  6. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  7. 【Python成长之路】如何用python开发自己的iphone应用程序,并添加至siri指令

    哈喽大家好,我是鹏哥. 今天想记录的学习主题是 -- 基于pythonista3 app开发自己的iphone应用程序. ~~~上课铃~~~ (由于今天被小伙伴推荐了这首歌,因此就应他的要求,作为此文 ...

  8. 【Python成长之路】破解Boss直聘网站滑块验证

    哈喽大家好,我是鹏哥. 今天要记录的内容是 -- 破解Boss直聘网站的滑块验证. -- 上 课 铃-- TuesdayBurak Yeter;Danelle Sandoval - Tuesday 1 ...

  9. 【Python成长之路】如何用2行代码将抖音视频设置成我的手机铃声

    哈喽大家好,我是鹏哥. 今天想学习记录的内容是 -- 如何用python提取视频中的音频. ~~~上课铃~~~ 1 写在前面 本来按我的性子和精力,一周一般只想写一篇博客:但是今天在刷抖音时,发现有个 ...

最新文章

  1. 百度自从取消餐补,公司同事天天七点多就跑了,八点基本工位都空了。
  2. php fpm error,关于启动php-fpm失败的解决办法
  3. nginx log记录请求响应日志及日志分割
  4. Java使用Jolt连接Tuxedo服务器
  5. SpringBoot——@Scheduled的自定义周期性线程池解决任务延时执行问题
  6. 历史上今天和成语辞典 进入美国区教育类 what's hot
  7. winform keydown 等待按下另外一个键_真是没想到,手机电源键还有4个隐藏技巧,今天算是学到了...
  8. wget下载命令使用说明
  9. 2018年的人工智能将如何发展?看看专家怎么说
  10. 程序语言POJ 2406 Power Strings
  11. API函数简介 转自洪恩在线
  12. Win7旗舰版如何激活超级管理员权限
  13. 基于MATLAB的AM调制解调
  14. linux 系统基本设置
  15. 软件需求、架构培训(一)
  16. 云诊所管理系统(联合诊疗)支持远程高清视频会诊
  17. 超融合一体机如何影响私有云部署
  18. 微软控诉四大PC品牌经销商
  19. 安全性测试应该从那几个方面进行?
  20. 随记随提可行性分析报告

热门文章

  1. php simpletest 测试数据库,在PHP中使用SimpleTest进行单元测试
  2. nodejs 截断字符串_node.js – nodejs:字符串操作
  3. lwip路由实现_基于LWIP协议栈对路由缓存数据结构实现改进设计
  4. 固态器件理论(6)双极结型晶体管
  5. HDLBits 系列(34)Serial two's complememter(Mealy and Moore FSM)
  6. 【Verilog HDL 训练】第 04 天(竞争、冒险、译码等)
  7. 【 Vivado 】使用工程模式
  8. 分贝dB与放大倍数的转换关系及对照表
  9. RabbitMQ的应用场景以及基本原理介绍
  10. vSphere虚拟化之ESXi安装及部署