Python基础知识(2)
1:if比较运算符、and、or
>=:大于或者等于
<=:小于或者等于
==:等于
!=:不等于 (<>:也是不等于,在Python2中可用、Python3中无法使用)
1 age = 19 2 3 #if age 大于等于 18:#我们用什么方法来表示大于或者等于 4 if age >= 18: #大于或者等于,不论大于还是小于,符号都在等号的左边 5 print("已成年,可以去网吧...") 6 7 #if age <= 18: 小于或者等于 8 #if age == 18: 等于 9 #if age != 18: 不等于 10 #if age <> 18: 也是不等于(在Python2中可以用,在Python3中不能用) 11 #注意: >=、<=、==、!= ,中间都不能有空格
2:逻辑运算符
逻辑运算符是什么呢?
站在;逻辑的角度上思考,你们两个是都去呢,还是你们两个只有一个人可以去。
逻辑运算符:或者(or)、并且(and)、not
我们先来说下“或者”
1 you = input("你去吗?") #询问你去办理业务吗 2 she = input("他去吗?") #询问他去办理业务吗 3 4 #if you == "去" 或者 she == "去": #规定只要有一个人去,这件事情就可以办成 5 if you == "去" or she == "去": #or就相当于或者的意思 6 print("可以办理业务。")
再来说说“并且”
1 you = input("你去吗?") #询问你去办理业务吗 2 she = input("他去吗?") #询问他去办理业务吗 3 4 #if you == "去" 并且 she == "去": #规定你和他都要去,如果其中有一个人不去的话就无法办理业务 5 if you == "去" and she == "去": #and就相当于并且的意思,if里面的两个条件必须都成立的情况下才可以去办理业务 6 print("可以办理业务。")
用if和逻辑运算符来打印一个 “你是不是白富美的小程序”
1 color = input("你白吗:") #你白吗 2 money = input("你的财产总和是:") #你有钱吗 3 beautiful = input("你美么:") #你漂亮吗 4 5 #if 白 并且 有钱 并且 美: 6 #if 白 and 有钱 and 美: 7 if color == "白" and money > 1000000 and beautiful == "美": 8 print("你是白富美。")
有没有发现,这样即便你输入的是 白,1千万,美,还是没有显示“你是白富美”的值,那问题出在哪里呢?
1 color = input("你白吗:") #你白吗 2 money = int(input("你的财产总和是:")) #你有钱吗,因为输入数值会加上引号变成字符串,所以我们要用int整形来把输入的信息转换成整数,去掉引号 3 beautiful = input("你美么:") #你漂亮吗 4 5 #if 白 并且 有钱 并且 美: 6 #if 白 and 有钱 and 美: 7 if color == "白" and money > 1000000 and beautiful == "美": 8 print("你是白富美。")
我们还是需要稍微修改下我们的代码,使我们的代码变得更完整
我们三项都输入满足条件的值的时候,会打印出“你是白富美”,如果我们没有达到的话,就不提示什么,我们怎么做才能让我们输入的值不满足条件的时候给予相应的提示呢?
1 color = input("你白吗:") #你白吗 2 money = int(input("你的财产总和是:")) #你有钱吗 3 beautiful = input("你美么:") #你漂亮吗 4 5 #if 白 并且 有钱 并且 美: 6 #if 白 and 有钱 and 美: 7 if color == "白" and money > 1000000 and beautiful == "美": 8 print("你是白富美.") 9 else: 10 print("你不是白富美.") 11 12 ''' if .... : 如果你....完成: 13 我就打印你是白富美 14 else: : 那如果你没有完成: 15 那我就打印你不是白富美 16 if 和 else 就类似于 : 如果...那么 17 如果你完成了我怎么做,如果你不完成,那么我这样做'''
如果我们用“或者 or”呢? 可以自己试试。
说完了and和or,我们再来说说逻辑运算符not
not是什么意思呢 “非”,如果X的值为True,则返回结果为False,如果X的值为False,则返回结果为True
1 #我们定义a变量,然后拿a来做比较,下方的代码,输出的结果为“正确” 2 a = 30 3 4 if a > 0 and a <= 50: 5 print("正确") 6 else: 7 print("错误") 8 9 #那如果我们使用not来进行操作,会显示什么呢? 10 11 a = 30 12 13 if not (a > 0 and a <= 50): 14 print("正确") 15 else: 16 print("错误") 17 18 #可以看到上述的代码,我们在条件前添加not,就可以达到非的效果,黑白颠倒。
3:if-elif的使用
elif是什么呢,简单说,我们用if和else做判断,判断对错都会返回一个结果,如果我有2-3个条件去执行,我要怎么做?来看下面的例子
1 '''if 条件1: #定义你是网易工作吗,如果想去输出下面信息,结束程序,如果不想去继续往下走 2 print("xxxxx") 3 elif 条件2: #定义你是淘宝工作吗,如果想去输出下面信息,结束程序,如果不想去继续往下走 4 print("xxxxx") 5 elif 条件3: #你想去京东工作吗,如果想去输出下面信息,结束程序,如果不想去继续往下走 6 print("xxxxx") 7 else: #如果以上三个都不是,输出else的信息 8 print("xxxxx") ''' 9 10 11 sex = input("你想去哪里工作:") 12 13 if sex == "网易": 14 print("你获得了网易的面试邀请...") 15 elif sex == "淘宝": 16 print("你获得了淘宝的面试邀请...") 17 elif sex == "京东": 18 print("你获得了京东的面试邀请...") 19 else: 20 print("恭喜,什么也没有")
我们写一个用户输入1-7反应给用户星期几
1 num = int(input("请输入一个整数(1-7):")) #因为用户输入的是字符串,所以我们要整形 2 3 if num == 1: 4 print("星期一") 5 elif num == 2: 6 print("星期二") 7 elif num == 3: 8 print("星期三") 9 elif num == 4: 10 print("星期四") 11 elif num == 5: 12 print("星期五") 13 elif num == 6: 14 print("星期六") 15 elif num == 7: 16 print("星期日") 17 else: 18 print("错误,重新输入")
4:while循环
程序的三大执行顺序:
1):顺序执行:从下往下执行;
2):选择执行:从上往下执行,在中间可能一直往下,可能从右边走然后往下,有选择;
3):循环执行:去操场跑步的时候要一直绕着跑道跑,重复的绕圈就是循环。
先写一个简单的循环:
输入1-10的数字,每次循环的条件执行都会把结果输出,继续往下走,输入的结果再+1返回给条件继续判断,直到条件无法完成时退出循环
5:if的嵌套
嵌套:
1):if嵌套:一个if里面还有一个if,当你在做一件事情是在别的事情完成或者不完成的前提下做的事情
1 ''' 2 我们所学习过的if语句大概是一下三种 3 4 ①: 5 if 条件成立: 6 print(xxxxx) 7 8 ②: 9 10 if 条件成立: 11 print(xxxxx) 12 else: 13 print(xxxxx) 14 15 ③: 16 17 if 条件1: 18 print(xxxxx) 19 elif 条件2: 20 print(xxxxx) 21 elif 条件3: 22 print(xxxxx) 23 ... 24 else: 25 print(xxxx) 26 27 if嵌套呢? 28 29 if 条件: 30 print(xxxx) 31 if xxx2: 32 print(xxxx) 33 34 这就是if嵌套 35 '''
那if嵌套怎么用呢?
1 ticket = 1 #定义车票 2 knifeLenght = 8 #定义回家带的一把刀,长度为cm 3 4 #先判断有没有票,能不能进站 5 if ticket == 1: #如果没有车票,无法进站 6 print("车票检查通过,可以进站进行安检..") #打印欢迎进站信息 7 if knifeLenght <= 10: #如果刀子的长度没有超过10厘米可以进站 8 print("通过安检,可以进入候车厅..") #打印进站信息 9 print("两分钟后进入列车,请各位排队依次进入..") #打印进站信息 10 else: #如果刀子长度超过10厘米讲无法进入列车 11 print("您无法通过安检,请检查自身行李") 12 else: #如果没有通过检票,请先购买 13 print("请先购买车票,在进行检票进站") 14 15 #可以自行修改没有车票或者刀子长度超过10cm看看效果
我们在写一个关于判断白富美和高富帅的小脚本
1 sex = input("请输入你的性别:") #让用户输入性别 2 3 if sex == "男": #如果是男的执行以下信息 4 high = int(input("请输入你的身高:")) #输入身高 5 money = int(input("请输入你的存款:")) #输入存款 6 cool = input("你觉得你帅吗:") #输入..... 7 8 if high >= 180 and money > 100000 and cool == "帅": #全部满足才是高富帅 9 print("你是高富帅") #全部满足输出高富帅 10 else: 11 print("你不是高富帅") #不满足输入不是 12 13 elif sex == "女": #如果用户输入的性别是女,执行以下信息 14 colour = input("你觉得你白么:") #输入... 15 money = int(input("请输入你的存款:")) #输入存款 16 cool = input("你觉得你美吗:") #输入... 17 if colour == "白" and money > 100000 and cool == "美": #全部满足才可以继续执行 18 print("你是白富美") #全部满足的输出白富美 19 else: 20 print("你不是白富美") #如果不是的话就不是 21 else: 22 print("输入错误") #如果输入的性别不是男的也不是女的,提示错误信息
6:while嵌套
while嵌套 :在while条件满足的事情里面又添加了一个while
1 while 条件: 2 条件满足的时候做的事情 3 条件满足的时候做的实情2 4 ..... 5 while 条件2: 6 条件2满足的时候做的事情 7 .......
我们现在来试验下
下面写出你要做的事情,重复10遍
1):站起来
2):坐下
3):站起来
4):原地旋转5圈
5):坐下
用while 怎么写?
1 while 条件: #循环次数为10次 2 1.站起来 #先做第一遍,站起来 3 2.坐下 #先做第一遍,坐在 4 3.站起来 #先做第一遍,站起来 5 while 执行5次: #每次循环5次1圈 6 4.原地旋转1个 7 5.坐下 #坐在 8 9 #站起来-坐在-站起来-转一个圈..转五个圈... 重复10次
比如我们要打印一个矩形:
*
**
***
****
*****
我们应该如何利用while循环和while嵌套来进行操作呢?
1 我们先来打印一个简单的 2 3 ***** 4 ***** 5 ***** 6 ***** 7 ***** 8 ''' 9 10 i = 1 11 while i <= 5: 12 print("******") 13 i = i + 1 14 15 16 #加入我想print("*") 只输出一个* 我改如何操作,可以借鉴上面的while嵌套的站起来,坐下来写 17 18 i = 1 19 20 while i <= 5: 21 j = 1 22 while j <= 5: #打印5次* ,也就是说打印出来的效果是“*****” 23 print("*",end="") #end="" 是不会换行的意思,空格的意思,print输出*的话默认是换行的 24 j = j + 1 25 print("") #while j循环结束后用此命令来换行,print输出空内容默认是换行,等到while j结束之后执行, 26 i = i + 1 27 #循环打印5次已经打印的5个*
我们先来说下 什么是符合运算符?
比如 : i = i + 1 相当于 i += 1
注意一点:
1 a = 5 #定义变量a 2 a *= 34-22+43-22 #要记住这个误区, 3 a 4 165 5 6 #a *= 34-22+43-22相当于a = 5 * (34-22+43+22),不是a = 5*34-22+43+22 如果遇到后面是一个式子的话切记要加小括号
7:用“*”如何打印三角形?
结果如下:
1 i = 1 2 while i <= 5: 3 j = 1 4 while j <= i: 5 print("*",end="") 6 j += 1 7 print("") 8 i += 1
我们来分析下代码
小想法:
1 i = 1 2 while i <= 5: 3 j = 1 4 num = int(input("请输入行里*的个数:")) 5 while j <= num: 6 print("*",end="") 7 j += 1 8 print("") 9 i += 1
我们来尝试写一个99乘法表:
1 i = 1 2 while i <= 9: #打印9行 3 j = 1 4 while j <= i: 5 print("X*Y=Z",end="") #表示所有的乘法,如 1*1=1 6 j += 1 7 print("") 8 i += 1
修改x*y=z
1 i = 1 2 while i <= 9: 3 j = 1 4 while j <= i: 5 print("%d*%d=%d "%(j,i,j*i),end="") 6 j += 1 7 print("") 8 i += 1
如果你运行了代码之后,如果你有强迫症,那这里就要介绍一个命令 “\t”。 \t的意思类似于空格,我们修改下以上的代码,来看看效果
1 i = 1 2 while i <= 9: 3 j = 1 4 while j <= i: 5 print("%d*%d=%d\t "%(j,i,j*i),end="") 6 j += 1 7 print("") 8 i += 1
来试验一个小游戏:
剪刀石头布的游戏,达到这样的效果?要怎么写?
1 #impore:导入模块的意思,导入random的模块 2 import random 3 4 #1. 提示并获取用户的输入 5 player = int(input("请输入:0石头,1剪刀,2布:")) 6 7 #2. 让电脑出一个 8 computer = random.randint(0,2) #模块后面如果你想调用什么需要在模块后加一个点.,randint(0,2)的意思是自动在0-2中选取一个数字 9 10 #3. 判断用户的输入,然后显示对应的结果 11 #玩家获胜的条件: 12 if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0): 13 print("赢了") 14 #玩家平局的条件: 15 elif player == computer: 16 print("平局") 17 else: 18 print("输了")
8:for循环
简单了解下,for循环
1 name = "laowang" 2 3 #for xx in xx: #这是for循环的语法 4 for temp in name: #for xx(这里可以随便写,写一个新的变量名) in xx(这里写变量) 5 print(temp) #输出新变量,打印name变量中字符串的每个字符
8:while里面嵌套if、while之break
之前我们遇到if里面嵌套if,while里面嵌套while,但是我们没见过while里面嵌套if的,我们来做一个实验
打印100以内的所有偶数?
1 i = 1 2 3 while i <= 100: 4 5 if i%2==0: #如果i能够整除2且没有余数的话,条件通过打印i。 6 print(i) 7 8 i += 1
那break是什么意思呢?
break:如果条件满足提前结束循环语句
1 i = 1 2 3 while i <= 5: 4 #如果我们只想打印3以为的数字怎么办? 5 if i == 3: 6 break #break 如果条件满足提前结束while循环语句,break就是结束循环的语句 7 print(i) 8 i += 1
我们如果像打印100以内的前20个偶数,怎么打印?
1 i = 1 2 num = 0 3 while i <= 100: 4 if i%2 == 0: 5 print(i) 6 num += 1 7 if num == 20: 8 break 9 i += 1
说完break,我们再说说 continue。
continue:结束这一次的循环,转而执行下一次的循环。
我们来实验下
1 i = 1 2 3 while i <= 10: 4 i += 1 5 6 if i == 3: 7 continue 8 print(i)
注意:break和continue在while循环的嵌套中,break和continue在哪个while下面,就对哪个while循环执行。