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

390 篇文章 2 订阅
276 篇文章 4 订阅

前言**

前期回顾:你要偷偷学Python,然后惊呆所有人(第四天) 在第四天的时候,我们接触了Python的模块调用,这也是Python能够火起来的一大优势。我们还实践了csv模块。

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

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

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

本系列文默认各位有一定的C或C++基础,因为我是学了点C++的皮毛之后入手的Python。
本系列文默认各位会百度,学习‘模块’这个模块的话,还是建议大家有自己的编辑器和编译器的,上一篇已经给大家做了推荐啦?

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

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

print

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

比方说打这个出来:

img

            *
          *   *
    ’   *   *   *   ’
      *   *   *   *
    *   *   *   *   * 
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

列表与字典

img
img
写了上面那个题目,估计大家也挺累的,到这里大家放松一下,可以自己去找一些列表啊、元组啊、字典啊的方法。 当然,我们的学习群里会详细的介绍到。

注:列表和字典都是可任意嵌套的,可以同时包容不同类型的数据(如字符串、字典、列表等)。 所以,在提取数据时,要留意每个字符串都占据了一个偏移量。

函数与类

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

不过,啊哈,灵机一动。

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

1、来一个字典存名字(号码牌+名字),来一个列表存礼品
2、先挑一个礼品出来,然后从这个字典中随机抽一个号码牌,抽到谁的号码牌,礼品就是谁的了
3、以此类推,直到礼品发完
4、发礼品是要纪录的啊,到时候找财务报销嘛,这个账单要求是不可修改的,那怎么办呢?对,元组
5、如果要搞得逼真一点,可以设置一个定时器,时间到了亮结果,当然,我们先不弄那个轮盘转转转的
12345

加油!!!

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

模块

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

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

img

猜谜游戏

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

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是会报错的(我已经安装好了)

img

那怎么安装呢?

如果不是用pycharm的朋友请看我小标题那条语句,在cmd终端中执行。 用pycharm的跟我做: 左上角,“File”->“setting”->

img

知道在哪儿啊,不用我多说啊。 然后右上角那个圈出来的“+”点一点->

img

先在上面的搜索框输入咱要的,也就是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)

img

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

朋友们如果需要这份完整的资料可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

一、Python学习大纲

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、入门学习视频

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

五、python副业兼职与全职路线

在这里插入图片描述

在这里插入图片描述

👉[[CSDN大礼包:《python兼职资源&全套学习资料》免费分享]]安全链接,放心点击

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值