让女朋友入坑太难?我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的主要内容,如果未能解决你的问题,请参考以下文章

gRPC入坑记

gRPC入坑记

gRPC入坑记

5分钟教会学妹使用JavaScript栈解决问题JavaScript数据结构与算法系列

5分钟教会学妹使用JavaScript栈解决问题JavaScript数据结构与算法系列

三分钟教会你开密码箱