让女朋友入坑太难?我21分钟教会她以买口红的方式学会Python
Posted 杨旭华啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让女朋友入坑太难?我21分钟教会她以买口红的方式学会Python相关的知识,希望对你有一定的参考价值。
这可能是你女朋友学习Python时的状态,ε=(´ο`*)))唉,我们完全可以理解为, 教女朋友学Python == 你不爱我
不要着急不要慌,你点进来,我跟你说年轻人,你真来对了,我这篇文章你女朋友看完,我跟你说,你从此不用再讲武德了,再也不用跪键盘了,有没有一丝丝的欣慰~
你女朋友要是看了这个还不懂,真的兄弟,以后别让她化妆了,是化妆品配不上她了
好了废话不多说,正文开始
变量赋值
# 300即为钱 # 后面是注释信息,可以理解为是对一段代码的解释
Dior = 300
这个例子就是变量赋值,Dior就被称作变量,因为它是随着 = 号后面的 数字(钱) 变化而变化,所以叫变量,这个有什么用吗? 变量作用就是你准备拿着300块钱去买口红,你得有这300才能去做买口红这件事,没有这个去买空气啊??
算术运算符
接下来我们说一些运算符号 + - * 这三个不用说都会,我们再说一些其他常用的
/ 除法:结果为浮点数 # 这个就是比如5/2=2.5 3/3=1.0 就是浮点数可以理解成是买口红还送了你一个包装盒
// 整除:除的结果去掉小数部分 # 这个才是正常的除法 5/2=2...1 但是这个取到的是2就是,可以理解为化块钱,店员给了你两个口红,还找了你1块钱
% 求余 # 比如: 5/2=2...1 就是最后取到的数字是余数,也就是 1 就是说在这家店挨坑了,口红没拿到只给了你一个口红的壳子
比较运算符
我们重点说一下这两个
= 赋值 # 和==区分开
== 等于 # 这个才是我们平常认为的=号
然后我们去买口红啦!!!
判断语句
你已经长大了,要学会自己判断了
# if elif else 语句
# if 等于 要么这样
# elif 等于 要么那样 且每次判断语句是可以有很多elif 的,但是if和else只能有一个
# else 等于 否则
if 口红店打折:
买口红
else:
不买
根据这个判断就可以根据执行情况执行,如果打折就买,不打折就不买,就这么任性,就这么膨胀哼~
但是这样存在一些问题,就是要是不打折你就不买了,但是你不开心,又想要,我们可以改进这个程序,让它在灵活一点
如果口红打折了你就买它买它买它,不打折的话就讲价,那我们就从这个不打折上开始和老板展开谈判讲价,如果讲价成功你还是买它啦,如果不成功你就不买啦
if 口红店打折:
买口红
elif 和老板讲价:
if 讲价成功:
买口红
else: # 可以理解为讲价不成功
不买
else: # 老板不讲价
不买了
一般来说和老板讲价能成功,但是有的老板给打五折,有的老板给打九折,那你就想了,打五折你就买两个,今天用一个,明天用一个,打九折你就买一个,今天用完这个明天再说呗
# and 左右条件都满足,结果才满足
if 口红店打折:
买口红
elif 和老板讲价:
if 打折成功 and 打折<=5:
买它买它买它了,而且买两个
elif 打折成功 and 打折>5:
买一个吧那就
else: # 没讲价成功
不买
else: # 老板不讲价
不买
循环
通过判断你可以选择买还是不买口红,但是要是老板不打折你就买不到口红,就不能美美的了呢,怎么办,你想到了,你们家旁边有三家口红店,一家不打折不代表另外两家也不打折,所以你就希望都去看看,挑一家买
# for __ in __ 这个是循环的固定格式
for 口红店 in (迪奥、阿玛尼、圣罗兰):
if 口红店 打折:
买它买它买它
break 结束购买
else:
不买了,生气哼~
这个的意思就是三家店你都去看有没有打折,如果你去的第一家迪奥口红店打折了,你就买了,那么break这时候就是停止买口红的意思,因为你已经买到了,就不需要再去看别的店了,如果买不到,那么就依次去三个店看,如果都没有那我们就不买了回家
接下来我们把变量、判断语句和循环 结合起来使用
你希望找到一个打折力度最大的店买口红,这时候你就要那个小本本记一下打折的最大力度的那家店,然后去这家店买口红
# 拿小本本记一下
之前所有口红店给的最大折扣 = None
之前给最大折扣的口红店 = None
for 口红店 in (迪奥、阿玛尼、圣罗兰):
当前口红店折扣 = 老板给的折扣
if 当前口红店折扣 < 之前所有店给的最大折扣:
# 就是说老板给的折扣,等于当前口红店折扣,永远要比之前所有口红店给的最大折扣力度大,这样你才能买到最便宜的口红
之前所有店给的最大折扣 = 当前口红店折扣
# 比如原来是阿玛尼给到了5折,现在圣罗兰店给到了3折,那么我就把当前口红店折扣,当成之前所有口红店给的最大折扣,
# 这样方便你在下一家的比较,万一迪奥给店的折扣更大,你就可以继续更换之前所有口红店给的最大折扣了
else:
之前给最大折扣的口红店 = 口红店
# 老板不给折扣,那就比较一下之前哪个店给的折扣最低,那么就记在本本上,如果碰到当前店比上一个点折扣更高,那么就修改之前给最大折扣的口红店
去之前给最大折扣的口红店买口红
None: 这个可以理解为没有逛店呢,不知道每家店的折扣,就相当于没有折扣呢,它只能是作用于没买之前
函数
依旧我们去买口红,这次你想今天买一次,明天买一次,按照之前的就应该是:
for 口红店 in (迪奥、阿玛尼、圣罗兰):
if 口红店 打折:
买它买它买它
elif 和老板讲价:
if 打折成功 and 打折力度<=5折:
买他两个
elif 打折成功 and 打折力度>5折:
买一个吧
else: # 讲价没成功
不买了,生气哼~
else: # 老板不讲价
不买了,生气哼~
第二天
for 口红店 in (迪奥、阿玛尼、圣罗兰):
if 口红店 打折:
买它买它买它
elif 和老板讲价:
if 打折成功 and 打折力度<=5折:
买他两个
elif 打折成功 and 打折力度>5折:
买一个吧
else: # 讲价没成功
不买了,生气哼~
else: # 老板不讲价
不买了,生气哼~
上面的代码是可以实现我们的要求,但是我们看是不是太重复了,对于代码不是一成不变的,如果你想改动的话,各个地方都要改
那么我们就可以把买口红的代码写一个函数就是这样的:
def 买口红_函数():
for 口红店 in (迪奥、阿玛尼、圣罗兰):
if 口红店 打折:
买它买它买它
elif 和老板讲价:
if 打折成功 and 打折力度<=5折:
买他两个
elif 打折成功 and 打折力度>5折:
买一个吧
else: # 讲价没成功
不买了,生气哼~
else: # 老板不讲价
不买了,生气哼~
买口红_函数()
第二天
买口红_函数()
先来解释一下:
def 这个是函数声明,固定格式,可以理解为,你给店家说你要买口红
买口红_函数(): 这个是你的函数名字,可以理解为你买什么牌子的口红
买口红_函数() 这个是可以理解为调用,就是钱,你给店家钱人家才给你口红啊,你给一只口红的钱,店家就给你一个口红,给两只口红钱就给你两个口红呗
这样做的好处就是简化代码,易于维护,这样就可以了嘛?
请你记住一句话:世界上没有最完美的代码,只有不断完善的代码
接下来你还是遇到问题,就是我今天想买口红,但是你还想买散粉,那出现这种怎么办,还是用这种代码的话又会出现代码重复,那怎么办,不管?就这么用?
那你以后还想买隔离、粉底液、水乳、防晒、遮瑕、高光、面霜怎么办,这样在用之前那种方式就不现实了吧,就太耗时间了,所以你需要这个:
函数参数
函数参数意思就是你要买什么,写在这里:买口红_函数(): 我们可以写成这样的买化妆品_函数(参数): 这个括号里的参数就叫函数参数,你可以理解为,你得给店员说买什么化妆品的名字,人家才能根据你要什么给你拿
def 买化妆品_函数(化妆品名):
for 化妆品店 in 口红:
if 化妆品店 打折:
买它买它买它
elif 和老板讲价:
if 打折成功 and 打折力度<=5折:
买他两个[化妆品名]
elif 打折成功 and 打折力度>5折:
买一个吧[化妆品名]
else: # 讲价不成功
不买了,生气哼~
else: # 老板不讲价
不买了,生气哼~
买化妆品_函数(口红)
第二天
买化妆品_函数(散粉)
买化妆品_函数(口红) ---> 买化妆品_函数(化妆品名)
# 这个过程叫传递参数,口红是实参,化妆品名是形参 传参的过程就像是你给店家钱,人家给你化妆品
# 实参就像是你买的具体东西,形参可以认为这一类的东西,就是,口红、粉底等等都属于化妆品这一类
模块
函数已经讲完了,就是把代码整合起来好管理,而模块就是把更多的代码整合起来,通过导入,模块名字,一般我们把它放到一个类里面(我们下面说类),就是引用就可以来使用
我们现在有一个化妆品.py 文件,那么就可以使用里面我们通过类整合好的代码
# 第一种 这种方法导入模块化妆品,然后通过模块.函数调用函数
import 化妆品 # 注意不加后缀名.py
#使用它
化妆品.买口红_函数()
化妆品.买散粉_函数()
...
# 第二种 # 导入模块化妆品中所有的内容,可以直接使用
from 化妆品 import # *就是所有的意思
买口红_函数()
买散粉_函数()
...
# 第三种 # 导入模块指定的内容,拿来使用 三种方式我们按照实际情况导入使用
from 化妆品 import 买口红_函数 买散粉_函数
买口红_函数()
买散粉_函数()
...
类和对象
这个类这样定义
#固定格式 一个类可以有很多的函数
class 类名字:
#下面是函数
def 函数名(参数):
代码块
...
这个我们可以理解为:
类就是定义一种东西有哪些状态和行为,它是虚拟的
对象就是执行代码动态创建的实体
比如我们买口红,之前写了买口红的流程,现在我们创建两个人去买口红,每人负责一天,这样买东西的人也可以休息了。
这个类和对象有点抽象,解释起来不是一两句就可以说明白的,还是要靠自己悟一下嘿嘿,并不是我懒不想解释哈(其实就是懒~不写了困死了每天熬夜)
欢迎大家三连加评论啊!!!
以上是关于让女朋友入坑太难?我21分钟教会她以买口红的方式学会Python的主要内容,如果未能解决你的问题,请参考以下文章
5分钟教会学妹使用JavaScript栈解决问题JavaScript数据结构与算法系列