5天学会python_你要偷偷的学Python,然后惊呆所有人(第五天)

标题无意冒犯,就是觉得这个广告挺好玩的

前言

前期回顾:你要偷偷学Python,然后惊呆所有人(第四天)

在第四天的时候,我们接触了Python的模块调用,这也是Python能够火起来的一大优势。我们还实践了csv模块。

不过冷静下来想想,这样的速度会不会有点过于快了,这样速成的话势必会遗漏掉不少的知识点,而且也有不少小伙伴来问我Python相关的问题。如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python圈,裙号930900780,可领取python学习资料,会节约很多时间,减少很多遇到的难题。

(tip:言下之意就是:可以和一群有趣的灵魂一起学习有趣的技能,而且讲的也会更全面详细的啦)

好的接下来依旧是那段“高冷的”台词:

本系列文默认各位有一定的C或C++基础,因为我是学了点C++的皮毛之后入手的Python。

本系列文默认各位会百度,学习‘模块’这个模块的话,还是建议大家有自己的编辑器和编译器的,上一篇已经给大家做了推荐啦?

本系列也会着重培养各位的自主动手能力,毕竟我不可能把所有知识点都给你讲到,所以自己解决需求的能力就尤为重要,所以我在文中埋得坑请不要把它们看成坑,那是我留给你们的锻炼机会,请各显神通,自行解决。

1234567

好,这是一篇复习文,坐好咯,打开你们的编译器,不论是在线编译器还是PC编译器

print

其实我不知道print函数要不要试一下,是挺简单的,不过嘛,也是有那么些坑坑洼洼的哦。

比方说打这个出来:

*

* *

’*** ’

* * * *

** ***

12345

你会发现打的是什么鬼。

这里想说的是print函数在处理tab键上要注意的点。

以及对打印引号的处理办法。

转义字符

\n 代表换行;’ 代表单引号。

三引号

三引号可以把内容里的单引号打印出来且可以换行。

字符串拼接

给你一些变量如下:

name = '祖冲之'

contribute = '计算出了π'

than = '虽然我记不住,但是我知道整数部分是'

number = '3.14'

1234

请你打印出以下这句话:“祖冲之计算出了π,虽然我记不住,但是我知道整数部分是3”。

条件判断与循环语句

其实条件判断与循环语句上次是有写过了,那个猜数字的,也有些基础好的朋友就直接调用了random包,很强。

但也不是所有人基础都好的嘛,所以之前没有用随机数而是用伪随机数的朋友就再做一次吧,

这样吧,我们换个玩法。

题目需求:

1、这个数介于1~1000

2、你可以猜个数,系统告诉你偏大偏小并会压缩范围

3、你可以让系统在这个数的左右各压缩一次随机范围,碧如说现在这个数的范围为1~500,数是100,那么你选择压缩一半范围之后系统就会告诉你(20~300),这样的

4、你可以让系统告知你奇偶数,这个条件不作为重新划分区间的办法

以上,2、3分别可以使用4次,4可以使用1次,猜中,就是猜中了,猜不着,那也很正常嘛哈哈哈

123456

列表与字典

写了上面那个题目,估计大家也挺累的,到这里大家放松一下,可以自己去找一些列表啊、元组啊、字典啊的方法。

当然,我们的学习群里会详细的介绍到。

注:列表和字典都是可任意嵌套的,可以同时包容不同类型的数据(如字符串、字典、列表等)。

所以,在提取数据时,要留意每个字符串都占据了一个偏移量。

函数与类

哎呀,想创意好累哦,差点我就放弃了,想让你们把上面那个猜数字的封装一个函数,然后把函数放类里面。

不过,啊哈,灵机一动。

要不咱写个抽奖程序吧,这样,听我说:

1、来一个字典存名字(号码牌+名字),来一个列表存礼品

2、先挑一个礼品出来,然后从这个字典中随机抽一个号码牌,抽到谁的号码牌,礼品就是谁的了

3、以此类推,直到礼品发完

4、发礼品是要纪录的啊,到时候找财务报销嘛,这个账单要求是不可修改的,那怎么办呢?对,元组

5、如果要搞得逼真一点,可以设置一个定时器,时间到了亮结果,当然,我们先不弄那个轮盘转转转的

12345

加油!!!

至于类嘛,把这个功能和上边那个猜数字的整理到类里面嘛

模块

模块是吗?前面用了几个模块了来着?这里再用一个吧,把礼品发放记录的文件用Excel存起来吧,用openpyxl模块吧。

图片之后我会放上我的一些解答:

猜谜游戏

勉强能看啦,算法部分还可以优化,不过有点腰酸背痛,就,嗯。

import random

class GuessNum:

def __init__(self,max,min):

self.max = max

self.min = min

self.num_func1 = 4 #方法1:猜大小

self.num_func2 = 4 #方法2:压缩一半大小

self.num_func3 = 1

def Num(self):

random.seed()

self.num = random.randint(self.max, self.min)

return self.num

def func1(self,guess):

if self.num_func1 == 0:

print('抱歉,机会已用完')

else:

self.num_func1-=1;

if guess > self.num:

print('太大了哦,再来一次吧')

self.max = guess

elif guess < self.num:

print('再大点点,就快成功咯')

self.min = guess

else:

print('好滴吧,记住这个数字,把剩下的机会用完吧,虽然你猜中了')

def func2(self):

if self.num_func2 == 0:

print('抱歉,机会已用完')

else:

self.num_func2-=1

random.seed()

self.min = random.randint(self.num, self.min)

random.seed()

self.max = random.randint(self.max, self.num)

print('现在的范围是:'+str(self.min)+'~'+str(self.max))

def func3(self):

if self.num_func3 == 0:

print('抱歉,机会已用完')

else:

self.num_func3-=1

if(self.num%2):

print('奇数')

else:

print('偶数')

def func4(self,guess):

if(guess == self.Num()):

print('好滴吧,没得玩了。为啥?被你猜中了呗')

else:

print('抱歉哦,猜错咯,再来一把呗')

def Guess(self):

num = self.Num()

while(self.num_func1 | self.num_func2 | self.num_func3):

print('你有三个选择:\n'

'选择a:你猜一个数,我告诉你大小\n'

'选择b:系统将随机为你压缩大小\n'

'选择c:我直接告诉你是奇数还是偶数\n'

'请输入你的选择,如果已有答案,请直接输入数字:')

num_in = input()

if(num_in == 'a'):

print('请输入你的数据:')

num_in = int(input())

self.func1(num_in)

elif(num_in == 'b'):

self.func2()

elif(num_in == 'c'):

self.func3()

else:

self.func4(num_in)

print('机会已全部用完,请输入你的数字:')

num_in = int(input())

self.func4(num_in)

guess = GuessNum(0,1000)

guess.Guess()

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586

抽奖模块

我们假设这个礼品已经选好了,代码是前面那个猜谜的提升版啊,重点我们放在那个Excel上。

有这么几个获奖幸运儿:

(

"小王:CSDN定制双肩包",

"小李:腾讯云社区定制T恤",

"小吴:异步社区会员月卡一张",

"小刘:冬天的第一锅火锅"

)

123456

好,我们现在给它写进Excel里面。

(本来想留个坑,想了想,还是填上了,略显尴尬,调了十分钟,最后发现元组里面忘记加逗号了。。。)

第一步:pip install openpyxl

创建一个Excel表格这点儿事儿我就不说啦,我们打开编辑器,我的是pycharm,导入新包,因为openpyxl不是它自带的啊

所以你直接import是会报错的(我已经安装好了)

那怎么安装呢?

如果不是用pycharm的朋友请看我小标题那条语句,在cmd终端中执行。

用pycharm的跟我做:

左上角,“File”->“setting”->

知道在哪儿啊,不用我多说啊。

然后右上角那个圈出来的“+”点一点->

先在上面的搜索框输入咱要的,也就是openpyxl

然后再下面弹出来的选中它,接着左下角,install。

它就会开始:installing,下载完它会告诉你下载完,没跟你说的话就要脑子灵光点了,然后退出的时候记得apply一下,上边那个有“+”号的那个界面,右下角,“Apply”,千万记得。

import datetime

from random import choice

from time import time

from openpyxl import load_workbook

from openpyxl.utils import get_column_letter

# 设置文件 mingc

addr = "抽奖程序.xlsx"

# 打开文件

wb = load_workbook(addr)

# 创建一张新表

ws = wb.create_sheet()

# 第一行输入

ws.append(['获奖名单','奖品'])

##元组

tump = (

"小王:CSDN定制双肩包",

"小李:腾讯云社区定制T恤",

"小吴:异步社区会员月卡一张",

"小刘:冬天的第一锅火锅"

)

# 输入内容(500行数据)

for i in tump:

#print(i)

data = i.split(':')

#print(data[0]+data[1])

ws.append([data[0], data[1]])

# 获取最大行

row_max = ws.max_row

# 获取最大列

con_max = ws.max_column

# 把上面写入内容打印在控制台

for j in ws.rows: # we.rows 获取每一行数据

for n in j:

print(n.value, end="\t") # n.value 获取单元格的值

print()

# 保存,save(必须要写文件名(绝对地址)默认 py 同级目录下,只支持 xlsx 格式)

wb.save(addr)

最后多说一句,想学习Python可联系小编,这里有我自己整理的整套python学习资料和路线,想要这些资料的都可以进q裙930900780领取。

本文章素材来源于网络,如有侵权请联系删除。

你可能感兴趣的:(5天学会python)