Python成长之路第一篇(4)_if,for,while条件语句
有了以上的基本基础,已经上面写的几个小练习,大家肯定有很多的不满,比如查询为什么查询一次就退出了呢?下面我们来学习条件语句
一、万恶的加号
以前我们在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('谢谢使用再见')
break
else:
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+1for: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-99
print(i) #所以这里是1-101range函数的工作方式类似于分片(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')
continue
elif i == 4 :
pass
else:
print(i)结果
![]()
八、运算
python中有非常多的运算这里推荐网站:http://www.runoob.com/python/python-operators.html
Python算术运算符
Python比较运算符
Python赋值运算符
Python位运算符
Python逻辑运算符
Python成员运算符
Python身份运算符
Python运算符优先级
Python成长之路第一篇(4)_if,for,while条件语句的更多相关文章
- python成长之路第一篇(5)文件的基本操作
一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 ...
- PYthon成长之路第一篇(1)__字符串初识
今天一起走进python的代码世界,一起领悟python的魅力 在很多学习python的书中都会以 print “Hello,world!” 这样的而一个程序为开始,那么其中的 hello,worl ...
- Python成长之路第一篇(3)_初识字典
经过上章的学习我们已经了解到了列表可以通过索引来获取对应的值,在本章我们将学到通过名字来索引数据,这种结构的类型称之为映射(maooing),在Python中字典是唯一内建的映射类型,其中的值我们称之 ...
- Python成长之路第一篇(2)-初识列表和元组
可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别.列表元素用([])包括 ...
- Python成长之路第一篇(2)__初识列表和元组
可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别.列表元素用([])包括 ...
- 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)
2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...
- 我的Python成长之路---第一天---Python基础(5)---2015年12月26日(雾霾)
六.流程控制 与C语言不通的事Python的流程控制的代码块不是用{}花括号表示的,而是用强制缩进来,而且缩进必须一致,官方推荐是使用4个空格,不建议使用使用tab(制表符)做缩进,一是不同的系统ta ...
- python成长之路——第一天
一.python版本间的差异: 1.1:2.x与3.x版本对比 version 2.x 3.x print print " "或者print()打印都可以正常输出 只能print( ...
- Python成长之路第二篇(1)_数据类型内置函数用法
数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...
随机推荐
- 用 alias 给常用命令取个别名
作为一名iOS开发者,很多时候需要用到命令行,有时候一长串的命令实在让人讨厌,特别是一些常用的命令,我们要一遍一遍不厌其烦的去敲键盘.但是老鸟一般都不会这么傻,因为有 alias,通过alias 我们 ...
- 淘宝api 开发_获取用户信息
string url = "http://gw.api.taobao.com/router/rest"; "; string appsecret = "fdf7 ...
- 转的git
原文链接:http://blog.csdn.NET/dengjianqiang2011/article/details/9260435 如果输入$ Git remote add origin git@ ...
- ZigBee物理层协议规范
在不同的国家和地区,ZigBee技术所允许使用的工作频率是不同的,而对于不同的应用频率范围,其调制方式.传输速率均不同,众所周知,蓝牙技术在世界多数国家都采用统一的频率范围,其范围为2.4GHz的IS ...
- Java报表开发组件DynamicReports
DynamicReports 是一个基于 JasperReports 进行扩展的 Java 报表库,可用它来快速创建报表而无需可视化报表设计工具. From : http://www.oschina ...
- TLV----Demo讲解
接触过网络协议的人对TLV一定或多或少的知道.作为一种自定义应用层标准. TLV使用十分广泛.他对数据封包有着很好的定义,简单实用. TLV即Type-Length-Value.即我们每个封装成TLV ...
- Html代码seo优化最佳布局实例讲解
搜索引擎对html代码是非常优化的,所以html的优化是做好推广的第一步.一个符合seo规则的代码大体如下界面所示. 1.<!–木庄网络博客–> 这个东西是些页面注释的,可以在这里加我的& ...
- Android单元測试之JUnit
随着近期几年測试方面的工作慢慢火热起来.常常看见有招聘測试project师的招聘信息.在Java中有单元測试这么一个JUnit 方式,Android眼下主要编写的语言是Java,所以在Android开 ...
- 使用Kotlin开发Android应用(I):简单介绍
使用Kotlin开发Android应用(I):简单介绍 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 Kotlin是一门基于JVM的编程语言.它正成长为Androi ...
- ADO.NET改进版
ADO.NET从概念上来说是指定义一种与数据源进行交互的面向对象类库.类库即类的集合,也就是说ADO.NET主要是提供一了一些实现与数据源进行交互的一些类和接口. 其实就我个人看来,我觉得ADO.NE ...










