写给小白的Python之005:语句
2018-06-18 02:11:19来源:未知 阅读 ()
导读 :
1.if语句
2.while语句
3.for语句
4.break和continue
5.pass和else
一、if语句
if语句是最常用的条件控制语句,Python中的一般形式为:
if 条件一:
statements
elif 条件二:
pass # 空语句/占位语句
else:
statements
Python中用 elif 代替了 else if ,所以if语句的关键字为:if - elif - else。
注意:
1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在Python中没有switch - case语句。
1. if语句的三种类型
单分支:
if not (a>0 and a<=50):
print("在0到50之外....")
简单猜数字游戏:
age_of_princal = 56
guess_age = int( input(">>:") )
双分支:
if guess_age == age_of_princal:
print("yes")
else:
print("no ")
多分支:
if guess_age == age_of_princal:
print("Yes,you got it..")
elif guess_age > age_of_princal:
print("shoud try samller..")
else:
print("try bigger ...")
2. 案例:简单成绩等级判断
score = int(input("score:"))
if score > 90:
print("A")
elif score > 80:
print("B")
elif score > 70:
print("C")
elif score > 50:
print("D")
else:
print("滚")
3. if嵌套:上火车案例
ticket = 1 #1表示有车票 0表示没有车票
knifeLenght = 48 #cm
#先判断是否有车票
if ticket==1:
print("通过了车票的检测,进入到了车站,接下来要安检了")
#判断刀的长度是否合法
if knifeLenght<=10:
print("通过了安检,进入到了候车厅")
print("马上就要见到TA了,很开心.....")
else:
print("安检没有通过,等待公安处理....")
else:
print("兄弟 你还没有买票了,先去买票 才能进站....")
4. 猜拳游戏
import random
player = int(input('请输入:剪刀(0) 石头(1) 布(2):'))
computer = random.randint(0,2)
# 用来进行测试 #print('player=%d,computer=%d',(player,computer))
if ((player == 0) and (computer == 2)) or ((player ==1) and (computer == 0)) or ((player == 2) and (computer == 1)):
print('获胜,哈哈,你太厉害了')
elif player == computer:
print('平局,要不再来一局')
else:
print('输了,不要走,洗洗手接着来,决战到天亮')
5. 扩展:随机数的处理
在 Python 中,要使用随机数,首先需要导入 随机数 的 模块 —— “工具包”
import random
导入模块后,可以直接在 模块名称 后面敲一个 . 然后按 Tab 键,会提示该模块中包含的所有函数。
random.randint(a, b) ,返回 [a, b] 之间的整数,包含 a 和 b。
例如:
random.randint(12, 20) # 生成的随机数n: 12 <= n <= 20
random.randint(20, 20) # 结果永远是 20
random.randint(20, 10) # 该语句是错误的,下限必须小于上限。
二、while循环
1. while 语句基本语法:
初始条件设置 —— 通常是重复执行的 计数器
while 条件(判断 计数器 是否达到 目标次数):
条件满足时,做的事情1
条件满足时,做的事情2
...(省略)...
处理条件(计数器 + 1)
else:
语句
注意冒号和缩进。另外,在Python中没有do..while循环。
几乎所有的程序语言都选择从 0 开始计数。因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则 循环 的计数都从 0 开始。
示例:
a, b = 0, 1
while b < 10: # 循环输出斐波纳契数列
print(b)
a, b = b, a+b
while循环一般通过数值是否满足来确定循环的条件
i = 0 while i<5: print("当前是第%d次执行循环"%(i+1)) print("i=%d"%i) i+=1
结果:
当前是第1次执行循环
i=0
当前是第2次执行循环
i=1
当前是第3次执行循环
i=2
当前是第4次执行循环
i=3
当前是第5次执行循环
i=4
2. while循环嵌套
打印如下:
*
* *
* * *
* * * *
* * * * *
第1种方法实现:
# 定义一个计数器变量,从数字1开始,循环会比较方便 row = 1 while row <= 5: print("*" * row) row += 1
第2种方法实现:
row = 1 while row <= 5: # 假设 python 没有提供字符串 * 操作 # 在循环内部,再增加一个循环,实现每一行的 星星 打印 col = 1 while col <= row: print("*", end="") col += 1 # 每一行星号输出完成后,再增加一个换行 print("") #等同于print("\n") row += 1
3. 案例
(1)计算1~100的累积和(包含1和100)
i = 1 sum = 0 while i<=100: sum = sum + i i += 1 print("1~100的累积和为:%d"%sum)
(2)计算1~100之间偶数的累积和(包含1和100)
i = 1 sum = 0 while i<=100: if i%2 == 0: sum = sum + i i+=1 print("1~100的累积和为:%d"%sum)
(3)打印九九乘法表
第1种方法:
row = 1 while row <= 9: col = 1 while col <= row: # end = "",表示输出后,不换行 # "\t" 可以在控制台输出一个制表符,协助在输出文本时对齐 print("%d * %d = %d" % (col, row, row * col), end="\t") col += 1 # 一行打印完成的换行 print("") row += 1
第2种方法:
row = 1 while row<=9: col=1 while col<=row: print("%d*%d=%-2d "%(col,row,row*col),end='') col+=1 print('') row+=1
结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
4. print函数扩展
在默认情况下,print 函数输出内容之后,会自动在内容末尾增加换行;
如果不希望末尾增加换行,可以在 print 函数输出内容的后面增加 , end="" 。
其中 "" 中间可以指定 print 函数输出内容之后,继续希望显示的内容 。
语法格式如下:
# 向控制台输出内容结束之后,不会换行
print("*", end="")
# 单纯的换行
print("")
end="" 表示向控制台输出内容结束之后,不会换行
三、for循环
1. for循环基本语法
for循环一般是对能保存多个数据的变量,进行遍历。
Python中的for语句与C语言中的for语句有点不同:C语言中的for语句允许用户自定义迭代步骤和终止条件;而Python的for语句可以遍历任何序列(sequence),按照元素在序列中的出现顺序依次迭代。一般形式为:
for variable in sequence:
statements
else:
statements
示例:
words = ['cat','love','apple','python','friends'] for item in words: print(item, len(item))
如果你需要在循环体内修改你正 迭代的序列,你最好是制作一个副本,这时切片标记就非常有用了:
words = ['cat','love','apple','python','friends'] for item in words[:]: # 制作整个列表的切片副本 if len(item) >= 6: words.insert(0, item) print(words)
我们注意到循环语句中还可以使用 else子句 ,下面有讲到。
demo1:
name = 'dongGe' for x in name: print(x)
结果:
d
o
n
g
G
e
demo2:
name = '' for x in name: print(x) else: print("没有数据")
结果:
没有数据
2. 应用场景
在 迭代遍历 嵌套的数据类型时,例如 一个列表包含了多个字典。(关于字典之后会讲到)
需求:要判断 某一个字典中 是否存在 指定的 值:
如果 存在,提示并且退出循环;
如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示.
students = [ {"name": "阿土", "age": 20, "gender": True, "height": 1.7, "weight": 75.0}, {"name": "小美", "age": 19, "gender": False, "height": 1.6, "weight": 45.0}, ] find_name = "阿土" for stu_dict in students: print(stu_dict) # 判断当前遍历的字典中姓名是否为find_name if stu_dict["name"] == find_name: print("找到了") # 如果已经找到,直接退出循环,就不需要再对后续的数据进行比较 break else: print("没有找到") print("循环结束")
输出结果:
{'gender': True, 'weight': 75.0, 'name': '阿土', 'height': 1.7, 'age': 20}
finded
finish
3. 扩展:range函数
如果你要遍历一个数字序列,那么内置的range()函数就可以派上用场了。函数range()常用于for循环中,用于产生一个算术数列:
>>> list(range(10)) # 默认从0开始 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 11)) # 从1到11, 前闭后开 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> list(range(0, 30, 5)) # 5表示步长, 每隔5取一个数 [0, 5, 10, 15, 20, 25]
示例:(试一下以下代码的运行结果)
for i in range(2, 11): print(i)
四、break和continue
break 某一条件满足时,退出循环,不再执行后续重复的代码。
continue 某一条件满足时,不执行后续重复的代码 。
break/continue只能用在循环中, 除此以外不能单独使用。
break/continue在嵌套循环中, 只对最近的一层循环起作用,即只对 当前所在循环 有效。
break的作用:
用来结束整个循环。
带有break的循环示例如下:
i = 0 while i<5: i = i+1 print('----') if i==3: break print(i) else: print("==while循环过程中,如果没有执行break退出,则执行本语句==")
运行结果:
----
1
----
2
----
for in 遍历示例如下:
name = 'salmond' for x in name: print('----') if x == 'm': break print(x) else: print("==for循环过程中,如果没有执行break退出,则执行本语句==")
运行结果:
----
s
----
a
----
l
----
continue的作用:
用来结束本次循环,紧接着执行下一次的循环。
带有continue的循环示例如下:
i = 0 while i<5: i = i+1 print('----') if i==3: continue print(i)
运行结果:
----
1
----
2
----
----
4
----
5
for in 遍历示例如下:
name = 'salmond' for x in name: print('----') if x == 'm': continue print(x) else: print("==while循环过程中,如果没有break则执行==")
试着预想以下上面代码的执行效果,然后实际运行以下。
五、pass和else子句
pass
pass语句什么都不做,它只在语法上需要一条语句但程序不需要任何操作时使用。pass语句是为了保持程序结构的完整性。
else子句
在循环语句中还可以使用 else子句 ,else子句在序列遍历结束(for语句)或循环条件为假(while语句)时执行,但循环被break终止时不执行:
# 循环结束执行else子句
for i in range(2, 11): print(i) else: print('for statement is over.')
# 被break终止时不会执行else子句
for i in range(5): if(i == 4): break; else: print(i) else: print('for statement is over') # 不会输出
六、练习题:语句
1. 使用if,编写程序,实现以下功能:
_ 从键盘获取用户名、密码
_ 如果用户名和密码都正确(预先设定一个用户名和密码),那么就显示“欢迎进入xxx的世界”,否则提示密码或者用户名错误
2.BMI 计算
输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数。
* 例如:一個52公斤的人,身高是155cm,则BMI为 :`52(kg)/1.55^2(m)= 21.6`
* BMI指数:
```
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
```
3.个人所得税
编写一个程序计算个人所得税(以下为个人所得税税率表,3500元起征):
```
应纳税所得额(含税) 税率(%)
不超过1500元的 3
超过1500元至4,500元的部分 10
超过4,500元至9,000元的部分 20
超过9,000元至35,000元的部分 25
超过35,000元至55,000元的部分 30
超过55,000元至80,000元的部分 35
超过80,000元的部分 45
```
写给小白的Python之004:数据类型之字符串练习题答案
现有字符串num_str = "0123456789",请分别对num_str按下列要求操作:
# 1. 截取从 2 ~ 5 位置 的字符串 print(num_str[2:6]) # 2. 截取从 2 ~ `末尾` 的字符串 print(num_str[2:]) # 3. 截取从 `开始` ~ 5 位置 的字符串 print(num_str[:6]) # 4. 截取完整的字符串 print(num_str[:]) # 5. 从开始位置,每隔一个字符截取字符串 print(num_str[::2]) # 6. 从索引 1 开始,每隔一个取一个 print(num_str[1::2]) # 倒序切片 # -1 表示倒数第一个字符 print(num_str[-1]) # 7. 截取从 2 ~ `末尾 - 1` 的字符串 print(num_str[2:-1]) # 8. 截取字符串末尾两个字符 print(num_str[-2:]) # 9. 字符串的逆序 print(num_str[::-1]) # print(aStr[-1::-1])
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Python爬虫基本原理
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash