前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >夜曲编程Python入门课程Pro

夜曲编程Python入门课程Pro

作者头像
编程之心
发布2021-11-24 10:32:41
4K0
发布2021-11-24 10:32:41
举报
文章被收录于专栏:编程之禅编程之禅

第 1 课 编程中的文本

打印命令 print()

打印数字 print(1024)

打印字符串 print(“1024”)

  • 单双引号都可以,一般双引号。
  • 如果字符串表达里有某个引号,可以选用另外一种引号。
  • 如果字符串表达里有单双引号,用转义字符。

python编码需要顶格编程

python 注释是#号

# 注释内容,#号后面有空格

第 2 课 变量与赋值

变量名只能由字母、数字、下划线组成。

  1. 不以数字开头
  2. 大小写敏感

格式化输出:

代码语言:javascript
复制
name = "Tony"
print(f"My name is {name}")

转义字符: 左V括号

img
img

总结:

代码语言:javascript
复制
abc = "123";
print("abc") # 打印字符串,打印结果为:abc
print(abc) # 打印变量abc,打印结果为:123
print(f"{abc}") # 格式化打印,打印变量abc,打印结果为:123。 
print(f"{abc}abc") # 格式化打印,打印变量abc和字符串"abc",打印结果为:123abc。格式化打印场景应该是:字符串拼接变量名的情况

python三引号用法可实现简单换行输出 实现与\n一样效果

代码语言:javascript
复制
print('''I
love
This
World''')

输出效果

代码语言:javascript
复制
I
love
This
World

python里面的特别打印:数字*字符串是连续打印字符串多次

print(3 * "18")结果:

代码语言:javascript
复制
181818

第 3 课 编程中的数字

当整型和整型进行加、减、乘法运算时,运算结果是整型。

当整型和整型相除,或者有浮点型参与运算时,运算结果都是浮点型。

/ 除

// 取整除

img
img
代码语言:javascript
复制
print(7//3) # 取整运算
print(7%3) # 取模运算
img
img
img
img

在python中, 没有隐式转换的概念,即 数字型与字符串型不能拼接。除了乘号的情况,代表打印字符串几次

代码语言:javascript
复制
print(3 * "18")

第 4 课 真与假

python中的真假都是首字母大写 True False

python中的逻辑运算都是小写 and or not

第 5 课 单项选择中的判断

python中的 if没有括号,以: 结尾

代码语言:javascript
复制
if yourAge > myAge:    
    print("你的年龄比我大")
    print("层级要")

第 6 课 双向选择的判断

if 变量 如果变量是非零非空,则为True

代码语言:javascript
复制
if:
    do sth
else:
    do sth

在判断语句中,对非零值判断为真;对数字0的判断为假;对 None 的判断为假。

python变量空值赋值是None

第 7 课 复杂的多向选择

代码语言:javascript
复制
if:
    do sth
elif:
    do sth
else:
    do sth

第 8 课 数据和判断小结

第 9 课 储存多个数据的元组/数组

代码语言:javascript
复制
number = (-1, 3, 67, -9, 5, 6, 23)
print(number)
print(number[0])
print(number[2])
print(number[4])

第 10 课 灵活多变的列表

数组是() 列表是[]

代码语言:javascript
复制
friendName = ["Kevin", "Tony", "Asum"]
print(friendName)

列表中的数据也可以是整型,浮点型,字符串或布尔数的任意组合。

如图所示,列表mixedList中,包含整型、浮点型和字符串三种数据类型。

img
img

切片要遵循“左闭右开”原则,就是取左边的数据,不取右边的数据,与数学中的区间类似[1, 3),取左不取右。

代码语言:javascript
复制
someLetters = ["a", "b", "c", "d", "e"]
print(someLetters[1:3])
img
img

()开辟的是数组,[]开辟的是列表

第 11 课 列表的便捷操作

列表的api

append

insert(idx, val)

img
img

查找[]

删除pop del

添加append insert(idx, val)

修改[]=

pop与del不同点

pop可提取删除的数据,赋值给另一个变量

pop可以删除列表的最后一个元素

del直接删除列表里的元素,无法提取或保存

第 12 课 一对一的字典

img
img

字典的api

查找[]

删除pop

添加[]=

修改[]=

我们还可以通过"keys()"功能获取这个字典所有的键。

img
img

除了使用“keys()”以外,我们也可以通过in运算来检查字典是否包含某个键。

第 13 课 数据结构小结

定义方式

定义元组、列表和字典的方式如图所示,分别使用小括号 () 、方括号 [] 和花括号 {} 。

三种数据结构的每一项元素都是由逗号分隔开。

img
img

对于元组和列表来说,除了访问单个元素外,还可以使用切片来截取多个连续的元素。

img
img

今天,我们从以下几个方面复习了元组(tuple)、列表(list)和字典(dict):

  1. 定义方式
  2. 访问元素
  3. 修改元素
  4. 添加元素
  5. 删除元素
img
img

in运算符

想要快速判断列表或者元组中是否有某一个元素,可以使用in运算符。

in运算符的左边是要查找的元素,右边是定义的元组或列表。

in运算的结果,是一个布尔值(True/False)。

第 14 课 for循环的基础操作

遍历字典的键 for 循环遍历字典的键,有两种方法可以使用:

  1. for 循环遍历字典; 这个方法和 for 循环遍历列表的格式类似。
  2. for循环遍历字典中的所有键; 使用 for 循环遍历 dict.keys(),将字典中的键赋值给变量,再通过 print() 输出变量。

for i in state和 for i in state.keys()对于遍历字典state的效果是一样的。

img
img

第 15 课 for循环的复杂应用

累加器

代码语言:javascript
复制
names = ["Tim", "Amy", "Eva"]
count = 0
for name in names:
    count = count + 1
    print(f"第{count}名是{name}")   

第 16 课 条件循环语句

img
img

for循环和while循环的区别

\1. for循环常用于处理列表内的每个元素。

\2. for循环有天然的边界条件,while循环没有,需要我们精心设计边界条件。

\3. 大多数时候,for循环和while循环可以互换使用。

代码语言:javascript
复制
# 学生成绩列表
mark = [56,78,73,92,87,98,28,91,85,70,66,45,93]
min = mark[0]
max = mark[0]
for m in mark:
    if max < m:
        max = m
    if min > m:
        min = m   
print(f"本班最高分为{max},最低分为{min}")

第 17 课 跳出循环的办法

break直接终止整个循环结构; continue是跳过当前循环中剩下的代码,继续进入下一次循环。

第 18 课 循环的综合应用

for i in range()的功能是:遍历一个整数列表。

其中range()的功能是:创建一个整数列表。

例如:range(5)可以生成一个从0 开始到5结束但不包括5的整数列表[0,1,2,3,4]。

range(5)可以生成从0到4的整数列表。

如果我们需要生成从1到4的整数列表,只需要在range(5)中添加一个初始计数值1,改成range(1,5)就可以啦。

range与切片的区别:

range是生成整数列表,切片是对元组/列表进行切割

img
img
img
img
img
img

九九乘法表

代码语言:javascript
复制
for i in range(1, 10):    for j in range(1, i + 1):        print(f"{i}*{j}={i*j}")

三位数组合

这是一道经典编程题,通过1,2,3,4四个数字进行组合,一共会有多少种三位数? 输出所有的三位数组合。 备注:每个数字可以使用多次。

代码语言:javascript
复制
for i in range(1, 5):    for j in range(1, 5):        for k in range(1, 5):            res = i * 100 + j * 10 + k            print(res)

第 19 课 初识函数

无参函数

代码语言:javascript
复制
def sayWelcome():
    print("欢迎光临")
    print("商品一律九折")
    
sayWelcome()
sayWelcome()

有参函数

代码语言:javascript
复制
def sayWelcome(discount):
    print("欢迎光临")
    print(f"商品一律{discount}")
sayWelcome("九折")
sayWelcome("五折")

第 20 课 函数结构

20-8
20-8

函数经过内部代码的执⾏会产⽣⼀个结果,这个结果可以是⼀个具体的值也可以是多个值。

在本例中,函数计算出正⽅形的周长和面积,函数返回了两个值。

当函数同时返回多个值时,以逗号 “,” 隔开,并且返回值以元组的格式返回。

img
img
img
img

第 21 课 函数的参数

必选参数

img
img

默认参数

img
img

必选参数 vs 可选参数

img
img

第 22 课 递归与匿名函数

匿名函数定义:

匿名函数是一种不需要为函数命名的函数定义方式,以 lambda 关键字开头。

代码语言:javascript
复制
power = lambda x:x*x*x
print(power(5))
代码语言:javascript
复制
area = lambda l,w,h : l*w*h
print(area(10, 8, 6))
img
img

匿名函数不适合处理复杂代码块

递归

img
img

匿名函数使用判断表达式

img
img

偶数归零定义匿名函数,传入参数x,通过模2运算判断参数x是奇数还是偶数,若为奇数,返回参数x,否则返回0值。

最后,通过参数x为11调用并输出结果。

代码语言:javascript
复制
square = lambda x:x if x % 2 == 1 else 0print(square(11))

递归求和编写一个函数func(),传入参数x,x为列表,使用func()计算参数x内元素的和。

函数内首先判断x是否为空列表,若为空则返回0值,其余利用递归返回列表中第一个值到最后一个值的和。

最后,利用传入参数x为 [1,2,3,4,5]调用函数func(),输出结果。

代码语言:javascript
复制
def func(x):    if x == []:        return 0    else:        return x[0] + func(x[1:])print(func([1,2,3,4,5]))

每日花一半小米有10000块钱,每天花一半,能花多少天呢?

编写一个名为cost() 的函数,传入两个参数分别为money和day,计算参数money最多可以花多少天。

当money小于或者等于0时,返回f"钱花完了,花了{day}天"。 注意:参数money除2时需要取整,以保证有限次递归。

代码语言:javascript
复制
def cost(money, day):    if money <= 0:        return f"钱花完了,花了{day}天"    else:        day += 1        money //= 2        return cost(money, day)    print(cost(10000, 0))

第 23 课 类与对象

类代表一些拥有相同特性与功能的事物,如鸟类,人类,猫类等。

类中的某一个具体实例称为这个类的实例对象,简称为对象。

类的定义

代码语言:javascript
复制
class Phone():    def makeCall(self, who):        return f"正在拨打电话给{who}"    def sendMsg(self, who, txt):        return f"正在发送短信给{who}, 内容为{txt}"myPhone = Phone()yourPhone = Phone()ret = myPhone.makeCall("Tony")print(ret)ret2 = yourPhone.sendMsg("Jeremy", "中午吃啥?")print(ret2)
img
img

类的属性与初始化

代码语言:javascript
复制
class Phone():    def __init__(self, bd, clr):        print("创建实例对象时,自动调用此方法")        self.brand = bd        self.color = clr
img
img

练习

汽车信息

创建一个类Car,用来存储有关汽车的信息。初始化以下信息,品牌brand,型号model,购买年份year。 创建getCarInfo()方法,用来返回汽车的基础信息。

创建一个参数为"Audi",“A6L”,"2019"的对象,调用该对象的getCarInfo()方法,输出对应的汽车基础信息。(注意: 各信息之间用英文空格隔开哦~)

输出示例: Audi A6L 2019

代码语言:javascript
复制
class Car():    def __init__(self, brand, model, year):        self.brand = brand        self.model = model        self.year = year    def getCarInfo(self):        return self.brand + " " + self.model + " " + self.yearmyCar = Car("Audi", "A6L", "2019")print(myCar.getCarInfo())

第 25 课 使用别人代码的模块机制

导入模块

img
img

导入模块(II):导入模块里面的一部分内容

代码语言:javascript
复制
from datetime import datetodayDate = date.today()print(todayDate)
img
img

练习:

使用 from…import… ,从datetime模块中导入date类。

获取今天日期的年份,并判断跟实际今年的年份(2021)是否相等。相等输出True,不相等输出False。

代码语言:javascript
复制
from datetime import dateyear = date.today().yearprint(year == 2021)
img
img

安装第三方模组

在Windows命令提示窗口里,使用 pip install「ModuleName」命令安装第三方模块。

img
img
img
img

第 26 课 文件操作入门

img
img

使用with打开文件

代码语言:javascript
复制
path = "/Users/aLing/bobo.jpg"with open(path,"rb") as imageFile:    print(imageFile)

由于我们要打开一张图片,在这里打开方式为:rb。rb 表示以只读的方式读取二进制文件,即 Read Binary 的缩写。

open() 函数在读取文件时,有时候会发生异常。为了能在发生异常时,自动释放打开的文件资源,我们可以搭配使用 with…as…语句。

使用 with…as…语句,首先执行 with 后面的 open() 函数,返回值会赋给 as 后面的变量。

img
img

现在在程序中能够批量打开图片,接下来就要批量读取图片。

在这里,我们可以调用 read() 函数,read() 函数可以逐个字节(或者逐个字符)读取文件中的内容。

由于是以二进制格式打开图片,所以读取的图片内容是二进制格式。

代码语言:javascript
复制
path = "/Users/aLing/bobo.jpg"with open(path,"rb") as imageFile:    print(imageFile.read())

最后的代码

代码语言:javascript
复制
# 发件人、收件人sender = "aLing@qq.com"receiverDict = {"xixi":"adc@yequ.com", "kiki":"def@yequ.com", "feifei":"hij@yequ.com", "bobo":"klm@yequ.com", "cici":"opq@yequ.com", "huahua":"rst@yequ.com", "yeye":"uvw@yequ.com", "jingjing":"xyz@yequ.com", "tongtong":"yza@yequ.com"}# 将文件路径/Users/aLing,赋值给变量pathpath = "/Users/aLing"# for 循环遍历字典receiverDict,将键赋值给变量receiverfor receiver in receiverDict:    # 将字符串path + "/"+ receiver + ".jpg"拼接,赋值给变量filePath    filePath = path + "/"+ receiver + ".jpg"    # 使用with...as以rb方式,打开路径为filePath的图片,并赋值给imageFile    with open(filePath, "rb") as imageFile:        # TODO 使用read()读取imageFile,赋值给变量fileContent        fileContent = imageFile.read()        # TODO 使用print()输出变量fileContent        print(fileContent)

练习一:

with…as 语句配合 open() 函数的方式,读取一个txt文件。

由于要打开一个txt文件,在open()函数中打开方式为"r"。

文件路径: “/Users/file/诗句.txt”

代码语言:javascript
复制
with open("/Users/file/诗句.txt", "r") as txtFile:    print(txtFile.read())

第 27 课 开源模块的应用

登录邮箱

代码的作用

登录邮箱需要使用 smtpObj 调用方法 login() ,该方法中需要传入两个参数,一个是登录的账号,一个是该账号的授权码。

代码的拆解

img
img

导入模块中的类后,我们来学习怎么运用。

\1. MIMEMultipart 负责整合邮件内容。

message = MIMEMultipart() —— 表示实例化一个 MIMEMultipart 对象,赋值给 message ,便于后面将邮件信息写入变量中。

img
img

\2. Header 负责编辑邮件内容。

message[“From”] = Header(“阿玲aLing@qq.com”)

表示先实例化一个 Header 对象,传入发件人信息;然后将发件人信息,赋值给 message[“From”]。

img
img

总结

发送邮件使用 sendmail(),传入三个参数:

\1. 发件人邮箱 sender; \2. 收件人邮箱 receiverDict[receiver]; \3. 邮件内容 message.as_string(),使用 as_string() 方法将message设置为文本格式。

img
img

练习

整理本节课代码,点击「run」运行即可。

对应右侧代码,尝试使用自己的帐号和授权码,修改收件人信息,在本地发送一封简单的邮件吧。

注意:课程中的发件人和收件人帐号均不能使用,否则会报错。

img
img
代码语言:javascript
复制
# 使用import导入smtplib模块
import smtplib
# 使用 from...import 从 email.header 导入Header
from email.header import Header
# 使用 from...import 从 email.mime.multipart 导入MIMEMultipart
from email.mime.multipart import MIMEMultipart
# 邮箱帐号设置,"aLing@qq.com"赋值给mailUser
mailUser = "aLing@qq.com"
# 邮箱授权码设置,"abcnawckdujkdace"赋值给mailPass 
mailPass = "abcnawckdujkdace"
# 使用smtplib.SMTP_SSL(服务器, 端口号),端口号为465,赋值给smtpObj
smtpObj = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 使用login()函数传入邮箱账户和授权码,登录邮箱
smtpObj.login(mailUser, mailPass)
# 发件人、收件人
sender = "aLing@qq.com"
receiverDict = {"xixi":"adc@yequ.com", "kiki":"def@yequ.com","tongtong":"yza@yequ.com"}
# for 循环遍历字典receiverDict,将键赋值给变量receiver
for receiver in receiverDict:
    # 实例化 MIMEMultipart 对象,赋值给message
    message = MIMEMultipart()
    # 将发件人信息写入 message["From"]
    message["From"] = Header(f"阿玲<{sender}>")
    # 将收件人信息写入 message["To"]
    message["To"] = Header(f"{receiver}<{receiverDict[receiver]}>")
    # 将主题写入 message["Subject"]
    message["Subject"] = Header(f"{receiver}-年会邀请函")
    # 使用sendmail(发送人,收件人,message.as_string())发邮件
    smtpObj.sendmail(sender, receiverDict[receiver], message.as_string())
    # 使用print()输出"发送成功"
    print("发送成功")

第 28 课 实现高效办公

编辑邮件正文

邮件正文需要创建 MIMEText 实例,传入三个参数:

\1. 正文:“Dear xx,邀请你参加年会。”;(可根据实际情况编辑内容。) \2. 文本类型:“plain”; \3. 编码:“utf-8”。

img
img

题目

整理批量发送邮件的代码,如图所示,复习相关知识点,点击「run」直接运行代码即可。

img
img
代码语言:javascript
复制
# 导入所需模块
import smtplib
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
# 邮箱帐号和授权码,连接和登录邮箱
mailUser = "aLing@qq.com"
mailPass = "abcnawckdujkdace"
smtpObj = smtplib.SMTP_SSL("smtp.qq.com", 465)
smtpObj.login(mailUser, mailPass)
# 发件人、收件人
sender = "aLing@qq.com"
receiverDict = {"xixi":"adc@yequ.com", "kiki":"def@yequ.com","tongtong":"yza@yequ.com"}
# 文件路径
path = "/Users/aLing"
for receiver in receiverDict:
    # 编辑并整合发件人、收件人、主题信息
    message = MIMEMultipart()
    message["From"] = Header(f"阿玲<{sender}>")
    message["To"] = Header(f"{receiver}<{receiverDict[receiver]}>")
    message["Subject"] = Header(f"{receiver}-年会邀请函")
    
    # 编辑邮件正文
    mailContent = MIMEText(f"Dear {receiver} 邀请你参加年会", "plain", "utf-8")
    # 读取图片文件
    filePath = path + "/" + receiver + ".jpg"
    with open(filePath, "rb") as imageFile:
        fileContent = imageFile.read()
    
    # 编辑附件信息
    att = MIMEImage(fileContent)
    att.add_header("Content-Disposition", "attachment", filename="邀请函.jpg")
    
    # 整合正文和图片
    message.attach(mailContent)
    message.attach(att)
    
    # 发送邮件
    smtpObj.sendmail(sender, receiverDict[receiver], message.as_string())
    print("发送成功")

第 29 课 大数据挖掘和分析

网络爬虫

定义

网络爬虫,是指“按照一定规则自动抓取网页信息的程序”。

数据分析

定义

数据分析,是将隐藏在一大批看来杂乱无章的数据中的信息 集中 和 提炼 出来。

从而找出数据的内在规律,发现洞见,驱动人的决策。

一个数据分析的流程,包括了数据清洗,描述性分析,探索性分析。

第 30 课 写给夜曲的一封信(内含彩蛋)

题目

No.098通过率:90.58%困难

最后一个人

有50个人围成一圈,顺序排号。从第一个人开始,按1到3循环报数,凡报到3的人退出圈子,问最后留下的那个人是在原来的50人中排第几号。

代码语言:javascript
复制
def jump(n, k):
    List = list(range(1, n + 1))
    index = 0
    while List:
        tmp = List.pop(0)
        index += 1
        if index == k:
            index = 0
            continue            
        List.append(tmp)
        if len(List) == 1:
            print(List[0])
            break
jump(50, 3)

No.099通过率:78.90%💊 挑战

手机靓号

定义一个函数phoneNo()完成随机生成手机号的功能,传入参数operator(运营商类型,包括四川移洞、四川连通、四川电兴),chooseType(选号类型,包括选取靓号、普通选号)。本题需要导入random模块,以及使用模块中的randint()函数哦!

手机号要求: 第一位数为:1;

第二位数为:3, 5, 7, 8, 9中的任意一个;

第三位数取决于第二位数: 如果第二位数为3或者8,则第三位数为0-9中的任意一个; 如果第二位数为5,则第三位数为除去4以外的0-9中的任意一个; 如果第二位数为7,则第三位数为除去4,9以外的0-9中的任意一个; 如果第二位数为9,则第三位数为8、9中的任意一个;

第四位数: 如果operator为"四川移洞",则第四位数为5, 7, 8, 9中任意一个; 如果operator为"四川连通",则第四位数为0, 2, 5, 6, 9中任意一个; 如果operator为"四川电兴",则第四位数为3, 7, 9中任意一个; 如果operator为其他字符串,则输出"没有该种营运商类型"。

最后七位: 如果chooseType为"选取靓号",则最后七位为6666666,8888888,9999999中任意一个; 如果chooseType为"普通选号",则最后七位随机生成七位数; 如果chooseType为其他字符串,则输出"没有该种选号类型"。

最后通过参数"四川连通",“选取靓号"调用手机号码生成函数phoneNo(),如果生成的num为"19999999999”,则输出"我要办理该手机号,号码为:19999999999",否则,输出"该号码不是我想要的号码,我不办理"。

代码语言:javascript
复制
import random
 
def phoneNo(operator,chooseType):
     #第二位数字为3,5,7,8,9中任意一个
    two =random.choice([3,5,7,8,9])
    
    #第三位数取值
    if (two == 3) or (two == 8):
        three = random.randint(0,9)
    elif two == 5:
        three = random.choice([0,1,2,3,5,6,7,8,9])
    elif two == 7:
        three = random.choice([0,1,2,3,5,6,7,8])
    elif two == 9:
        three = random.choice([8,9])
    
    #第四位数取值
    if operator == "四川移洞":
        four = random.choice([5,7,8,9])
    elif operator == "四川连通":
        four = random.choice([0,2,5,6,9])
    elif operator == "四川电兴":
        four = random.choice([3,7,9])
    else:
        print("没有该种运营商类型")
    
    #最后七位数取值
    final = ""
    if chooseType == "选取靓号":
        final = random.choice([6666666,8888888,9999999])
    elif chooseType == "普通选号":
        for i in range(8):
            final = final + random.radint(0,9)
        return final
    
    phoneNumber = "1" + f"{two}{three}{four}{final}"
    return phoneNumber
    
num = phoneNo("四川连通","选取靓号")
 
if num == 1999999999:
    print("我要办理该手机号,号码为:1999999999")
else:
    print("该号码不是我想要的号码,我不办理")

No.100通过率:90.64%😈 地狱

二维码设计

Python 社区中有数以万计强大的模块,我们无法一一解释说明。但通过查找与阅读相关文档,结合对Python语法的掌握就可以轻松的上手。

接下来让我们尝试一下:

现如今,我们的生活已经离不开对二维码的使用。

在Python中有一个强大的二维码处理模块MyQr。

通过阅读MyQr模块的文档MyQr模块的文档,将给定的内容与图片制作成一张彩色二维码。

代码语言:javascript
复制
from MyQR import myqr
# 图片的路径
img_path = '/Users/image/cute.jpg'
# 二维码要展示的数据链接
data = "https://shimo.im/docs/nTQ5XVG3NEoyNIGl/readX"
# 二维码要保存的位置
file_path = "/Users/image/"
# 二维码要保存的名称
file_name = "myQR.png"
# TODO 将制定的图片与数据生成一个彩色的二维码图片myQR.png
version, level, qr_name = myqr.run(data, save_name=file_name,save_dir=file_path, picture=img_path)

[参考资料] 1.夜曲编程Python入门课程Pro

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-11-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第 1 课 编程中的文本
  • 打印命令 print()
  • 第 2 课 变量与赋值
  • 第 3 课 编程中的数字
  • 第 4 课 真与假
  • 第 5 课 单项选择中的判断
  • 第 6 课 双向选择的判断
  • 第 7 课 复杂的多向选择
  • 第 8 课 数据和判断小结
  • 第 9 课 储存多个数据的元组/数组
  • 第 10 课 灵活多变的列表
  • 第 11 课 列表的便捷操作
  • 第 12 课 一对一的字典
  • 第 13 课 数据结构小结
  • 第 14 课 for循环的基础操作
  • 第 15 课 for循环的复杂应用
  • 第 16 课 条件循环语句
  • 第 17 课 跳出循环的办法
  • 第 18 课 循环的综合应用
    • 九九乘法表
      • 三位数组合
      • 第 19 课 初识函数
      • 第 20 课 函数结构
      • 第 21 课 函数的参数
      • 第 22 课 递归与匿名函数
      • 第 23 课 类与对象
        • 类的定义
          • 类的属性与初始化
            • 练习
            • 第 25 课 使用别人代码的模块机制
              • 导入模块
                • 导入模块(II):导入模块里面的一部分内容
                  • 练习:
                    • 安装第三方模组
                    • 第 26 课 文件操作入门
                      • 使用with打开文件
                        • 最后的代码
                        • 第 27 课 开源模块的应用
                          • 登录邮箱
                            • 总结
                              • 练习
                              • 第 28 课 实现高效办公
                                • 编辑邮件正文
                                  • 题目
                                  • 第 29 课 大数据挖掘和分析
                                    • 网络爬虫
                                      • 数据分析
                                      • 第 30 课 写给夜曲的一封信(内含彩蛋)
                                        • 题目
                                        相关产品与服务
                                        短信
                                        腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档