在判断之前,我们需要用到一些运算,根据运算的结果进行判断是否正确。运算分为布尔运算、比较运算、逻辑运算
python3判断
python3中的判断只有一种if判断,分别为判断值,判断范围。举个例子我们判断一下输入的用户名,只有两种可能要么输入的用户名正确,要么输入的错误,如果判断学生成绩等级哪就应该是得A,还是得B,还是得C。这就需要一个范围了。那么我们就根据这两种例子诠释一下。
if判断格式
if 条件: 满足条件 else; 不符合条件
这里用到一个新的知识点就是输入,输出。输出是使用的print(),2.*版本的输出是print。输入就不一样了,在python3.*版本中对python2.*的raw_input()和input()进行了整合,去掉了raw_input(),只保留了input(),不过python3.*中input()输入的变量都会转成字符串,然后可以根据需要进行转换,不过2.*中输入字符串会报错。
下面我们判断一下我们输入的值满足不满足条件,如果满足条件就返回"yes",不满足就返回"NO"
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org #判断和循环 name = input("输入你的名字:") #先输入变量 if name == "wulaoer": #判断相等成立条件 print("YES") #条件成立打印yes else: #不相等的条件 print("NO") #打印NO
输出结果
输入你的名字:wulaoer YES
使用到范围就需要一个比较,大于小于或等于,三种可能。不同的范围成绩等级是不一样的。下面我们看一下例子:
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org num = int(input("输入你的成绩:")) if num >= 90: print("A") elif num <90 and num >= 60: print("B") else: print("C")
输出结果
输入你的成绩:33 C
这里主要注意elif的用法,如果有多个判断增加elif即可,记住最后一个判断一定要使用else结尾。这个if判断的知识点就这么多,多练多记。
python3循环
python3的循环分两种,一种是for循环,一种是while循环,这里注意while循环用不好容易出现死循环,会导致系统崩溃,谨慎使用。下面针对两种循环分别诠释。
for循环
for循环就是循环对象中的所有元素一个一个的打印出来,可以结合if判断进行筛选,找出适合自己的然后在处理一下。下面看一下for循环的格式:
for 元素 in object: print("元素")
我们举个例子:循环一个列表,列表自己随意定义。
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org wulaoer = ["python","运维服务","自动化开发"] for i in wulaoer: print(i)
输出结果:
python 运维服务 自动化开发
这是循环的对象,如果循环整数的范围呢?这就需要使用新的知识点,range(),下面看一下range的用法:
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org for i in range(4): print(i)
输出结果:
0 1 2 3
输出的整数是从0开始,如果range(a,b)有两个参数就是打印a到b的范围,如果再增加一个参数呢?看下面的例子:
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org for i in range(1,10,3): print(i)
输出结果:
1 4 7
是否有什么发现,我们先看一下range的参数,首先打印的范围是1到10,后面还有一个参数3,就是间隔。可以理解为间隔数是3减1。好好琢磨一下,这个不难。下面看一个for嵌套if的例子:
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org num1 = [] num2 = [] for i in range(11): if i%2 == 0: num1.append(i) else: num2.append(i) print(num1,num2)
输出结果:
[0, 2, 4, 6, 8, 10] [1, 3, 5, 7, 9]
先申明两个列表,然后使用for循环循环一遍11(也就是0到10,为何到10参考一下索引),然后进行判断能够整除的追加到列表num1中,不能整除的追加到列表num2中。
for循环的扩展,我们在写脚本的时候如何生成一个平方列表,这个时候就直接像上面的格式有点low了,我们可以在列表中写一个循环,直接创建即可,看看下面的雷子:
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org wulaoer=[i*i for i in range(10)] print(wulaoer)
输出结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
这种方式直接生成一个平方列表,不过在程序中建议少用。一是这种方式用的少,二是不太符合逻辑。
遗留作业1:使用for循环生成一个列表,列表的元素必须为偶数,范围自己定义。
wulaoer = [i for i in range(11) if i%2 == 0]
遗留作业2:使用for循环修改列表的某一个元素,修改字符串中的一个字符,删除字符串中的一个字符,修改字典中的一个value
循环的break和continue
先说结束循环,再说while循环,因为到while循环的时候不结束循环,循环就会一直执行容易出现死循环,服务器出现死机。结束循环有两个一个是break一个地continue,两者的区别就是一个结束整个循环,一个结束这一次的循环。还使用上面的例子,只是在第一次判断下增加一个continue打印一下,然后换成break在打印一下你就会了解:
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org num1 = [] num2 = [] for i in range(11): if i%2 == 0: break num1.append(i) else: num2.append(i) print(num1,num2)
输出结果:
[] []
这说明第一次循环的时候已经结束了整个循环,把break替换成continue在打印你会发现两个申明的空列表一个有值一个空的,这说明能够整除2的循环都结束了,导致没有整数追加到列表num1中,所以是空的。两者的对比一目了然。
while循环
while循环也可以有两个条件,while判断后面跟一个else,也可以不跟,这里需要注意条件可以使用括号括起来也可以不实用括号。跳出循环可以for循环一样也是使用break和continue,如果满足条件就会持续的执行条件下的任务,不满足这结束。我们先看看while的格式:
while 条件: 任务1 else: 任务2
我们先写个例子,不过为了达到解释的目的,我会在后面做个解释,先看代码:
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org wulaoer = 1 num = 1 while wulaoer < 8 and num > 0: wulaoer += 1 print("第 %d 次打印"%num,wulaoer) num += 1
申明了两个变量,wulaoer是为了测试while的执行条件,num是为了记录执行次数,判断条件就是两个都要满足,使用and(这个在数据类型里有说)。wulaoer加1是为了下次判断,打印一下是为了记录条件成立后的第一次循环,第二次循环wulaoer的值从原来的1变成了2(上次循环的时候加了1),持续循环到wulaoer大于8不成立循环结束。看一下打印结果:
第 1 次打印 2 第 2 次打印 3 第 3 次打印 4 第 4 次打印 5 第 5 次打印 6 第 6 次打印 7 第 7 次打印 8
如果在上面的基础上去掉wulaoer小于8的条件,循环就会一直下去,不手动结束循环,while就不会停止,这就是我们说的死循环。
下面看看几个练习循环的例子:
1、有50枚硬币,可能包括4种类型:1元,5角,1角,5分。已知总价值为20元。求各种硬币的数量,比如:2,34,6,8 就是一种答案。而 2,33,15,0 是另一个可能的答案,显然答案不唯一。
你的任务是确定类似这样的不同的方案一共有多少个(包括已经给出的2个)?
可以看出这里的硬币数量和存在着 1元×20+5角×10+1角×2+5分=400 这样的关系的分类才符合题目的要求
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org yuan1 = 100;jiao5 = 50;jiao1 = 10;fen5 = 5 yuan1_count = jiao5_count = jiao1_count = fen5_count = wulaoer = 0 for yuan1_count in range(0,51): for jiao5_count in range(0,51): for jiao1_count in range(0,51): for fen5_count in range(0,51): if (yuan1_count+jiao5_count+jiao1_count+fen5_count==50) and (yuan1*yuan1_count+ jiao5*jiao5_count+jiao1_count* jiao1+fen5_count* fen5==2000): print(yuan1_count,jiao5_count,jiao1_count,fen5_count) wulaoer += 1 print(wulaoer)
2、四平方和的定理又称拉格朗日定理:每个正整数都可以表示至多4个正整数的平方和。如果把0包括进去,就可以表示为4个数的平方和。
比如:
5=0^2+0^2+1^2+2^2 7=1^2+1^2+1^2+2^2
对于一个给定的正整数,可能存在多种平方和的表示法。要求你4个数排序:
0<=a<=b<=c<=d
并对所有的可能表示法按 a,b,c,d为联合主键升序排列,最后输出第一个表示法。程序输入为一个正整数N(N<5000000),要求输出4个非负整数,按从小到大排序,中间用空格分开,如,输入
5
3、古时候有个国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,......后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有64格)。国王以为他只是想要一袋麦子而已,哈哈大笑。
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.org import math wulaoer = 0 for i in range(1,65): sumn = math.pow(2,i-1) wulaoer += sumn print(wulaoer)
以上是针对python3的for循环和while循环的用法以及,使用if判断。这里虽然知识点不多,但是用的时候比较常用,所以需要多多练习。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏