项目实操步骤

分析:明确项目目标
拆解(将一个问题拆解为多个步骤或者多种不同的层次,逐步解决和执行并最终达到效果)–分析过程拆到无法拆解为止
解决:代码实现,逐步执行

三局两胜制小游戏

# 敌我两PK,三局两胜制,用“计分板”判断最终胜利from curses import keyname
from http import server
import random
from time import time, time_ns
from tkinter import Menuplayer_victor = 0
enemy_victor = 0for i in range(3):player_hp = random.randint(100,150) # 标准的变量名最好是用英文来表达含义,如果是多个单词组成,需要用英文下划线_来隔开。player_at = random.randint(30,50)enemy_hp = random.randint(100,150) # 标准的变量名最好是用英文来表达含义,如果是多个单词组成,需要用英文下划线_来隔开。enemy_at = random.randint(30,50)print('【玩家】血量 %d ,攻击力 %d' % (player_hp,player_at)) # 实现不同数据类型的拼接(不需要转换),用【格式化字符串】。 %s 字符串占位 ; %d 整数占位 ; %f 浮点数占位print('【敌人】血量 {} ,攻击力 {}' .format(enemy_hp,enemy_at)) # 更便捷,不担心用错类型,可指定位置,还可以传参数while (player_hp >= 0) and (enemy_hp >=0 ):player_hp = player_hp - enemy_atenemy_hp = enemy_hp - player_atprint(player_hp)print(enemy_hp)if player_hp > enemy_hp:player_victor += 1 # 小技巧:player_victor = player_victor + 1,总是这样写有点烦人,我们可以写作player_victor += 1,这两个代码是等价的,都代表"如果if后的条件满足,变量就+1"。print('玩家胜利')elif player_hp < enemy_hp:enemy_victor += 1print('敌人胜利')else:print('你们打平了')if player_victor > enemy_victor:print('玩家获得了最终胜利')
elif player_victor < enemy_victor:print('敌人获得了最终胜利')
else:print('你们打平了')

人力/工时计算器

# 我的设计:这个循环问题还是没解决
# key值判断法可以解决不在循环内用“循环”的问题
# import math
# key = 1
# def estimated(size=1,number=None,time=None):
#     if (number == None) and (time != None):
#         number = math.ceil(size * 80 / time)
#         print('项目大小为%.1f个标准项目,如果需要在%.1f个工时完成,则需要人力数量为:%d人' %(size,time,number))
#     elif (number != None) and (time == None):
#         time = size * 80 / number
#         print('项目大小为%.1f个标准项目,使用%d个人力完成,则需要工时数量为:%.1f个' %(size,number,time))
# def again():
#     global key # 哪里需要用,哪里声明全局变量
#     contour = input('请确认是否继续计算,输入y-继续,输入其他则退出程序')
#     if contour == 'y':
#         key = 0
# def main():
#     if key == 1:
#         types = int(input('请选择计算类型:(1-人力计算,2-工时计算)'))
#         size = float(input('请输入项目大小:(1代表标准大小,可以输入小数)'))
#         while True:
#             if types == 1:
#                 time = float(input('请输入工时数量:(请输入小数)'))
#                 return estimated(size,time),again()
#             elif types == 2:
#                 number = int(input('请输入人力数量:(请输入整数)'))
#                 return estimated(size,number),again()
# main()
# 老师的设计:采用面向对象编程的思维
# 面向对象编程——考虑先创建某个类,在类中设定好属性和方法,即是什么,和能做什么;再以类为模版创建一个实例对象,用这个实例去调用类中定义好的属性和方法即可
import math
class Project:def __init__(self):self.key = 1def input(self):choice = input('请选择计算类型:(1-工时计算,2-人力计算)')if choice == '1':self.size = float(input('请输入项目大小:(1代表标准大小,请输入小数)'))self.number = int(input('请输入人力数量:(请输入整数)'))self.time = Noneif choice == '2':self.size = float(input('请输入项目大小:(1代表标准大小,请输入小数)'))self.number = Noneself.time = float(input('请输入工时数量:(请输入小数)'))def estimated(self):# 人力计算if (self.number == None) and (self.time != None):self.number = math.ceil(self.size * 80 / self.time)print('项目大小为%.1f个标准项目,如果需要在%.1f个工时完成,则需要人力数量为:%d人' %(self.size,self.time,self.number)) # 工时计算elif (self.number != None) and (self.time == None):self.time = self.size * 80 / self.numberprint('项目大小为%.1f个标准项目,使用%d个人力完成,则需要工时数量为:%.1f个' %(self.size,self.number,self.time))  def again(self):a = input('是否继续计算?继续请输入y,输入其他键将结束程序。')if a != 'y':# 如果用户不输入'y',则把key赋值为0self.key = 0  # 主函数def main(self):print('欢迎使用工作量计算小程序!')while self.key == 1:self.input()self.estimated()self.again()print('感谢使用工作量计算小程序!')
# 创建实例
project1 = Project()
project1.main()
# 面向过程编程——考虑程序具体的执行过程(即先做什么后做什么)
import math
# 变量key代表循环运行程序的开关
key = 1
# 采集信息的函数
def myinput():choice = input('请选择计算类型:(1-工时计算,2-人力计算)')if choice == '1':size = float(input('请输入项目大小:(1代表标准大小,请输入小数)'))number = int(input('请输入人力数量:(请输入整数)'))time = Nonereturn size,number,time# 这里返回的数据是一个元组if choice == '2':size = float(input('请输入项目大小:(1代表标准大小,请输入小数)'))number = Nonetime = float(input('请输入工时数量:(请输入小数)'))return size,number,time# 这里返回的是一个元组
# 完成计算的函数
def estimated(my_input):# 把元组中的数据取出来size = my_input[0]number = my_input[1]time = my_input[2]# 人力计算if (number == None) and (time != None):number = math.ceil(size * 80 / time)print('项目大小为%.1f个标准项目,如果需要在%.1f个工时完成,则需要人力数量为:%d人' %(size,time,number)) # 工时计算elif (number != None) and (time == None):time = size * 80 / numberprint('项目大小为%.1f个标准项目,使用%d个人力完成,则需要工时数量为:%.1f个' %(size,number,time))
# 询问是否继续的函数
def again():# 声明全局变量key,以便修改该变量global keya = input('是否继续计算?继续请输入y,输入其他键将结束程序。')if a != 'y':# 如果用户不输入'y',则把key赋值为0key = 0
# 主函数
def main():print('欢迎使用工作量计算小程序!')while key == 1:my_input = myinput()estimated(my_input)again()print('感谢使用工作量计算小程序!')
main()

与机器人猜拳

import random
# 出拳
punches = ['石头','剪刀','布']
computer_choice = random.choice(punches)
user_choice = ''
user_choice = input('请出拳:(石头、剪刀、布)')  # 请用户输入选择
while user_choice not in punches:  # 当用户输入错误,提示错误,重新输入print('输入有误,请重新出拳')user_choice = input()
# 亮拳
print('————战斗过程————')
print('电脑出了:%s' % computer_choice)
print('你出了:%s' % user_choice)
# 胜负
print('—————结果—————')
if user_choice == computer_choice:  # 使用if进行条件判断print('平局!')
# 电脑的选择有3种,索引位置分别是:0石头、1剪刀、2布。
# 假设在电脑索引位置上减1,对应:-1布,0石头,1剪刀,皆胜。
elif user_choice == punches[punches.index(computer_choice)-1]:print('你赢了!')
else:print('你输了!')

完整项目实操:图书馆管理系统

我的思路
第一步:对象为图书馆Lib,子类为书
第二步:图书馆属性,用元祖存放书和在借在还状态;图书馆方法,用key=0/1来判断借还装填
第三步:书的属性,index来获取书的名字/状态;书的方法1,key ± 1来确定借还;书的犯法2,index来查询/添加图书
第四步:实例化完成调用

老师的思路
处理对象是每本具体的书,而每本书都有自己的属性信息,所以我们可以定义一个Book类,利用Book类创建一个个书的实例,绑定属性
管理系统的运行主体,是多个可供选择的功能的叠加,所以我们可以创建一个系统运行类BookManager,将查询书籍、添加书籍等功能封装成类中的方法以供调用
为了让类的结构更清晰,我们可以将这个选择菜单也封装成一个方法menu(),方便调用其他方法

class Book:def __init__(self,bookname,author,recommended,status=0): # 利用初始化方法__init__,让实例被创建时自动获得这些属性self.bookname = booknameself.author = authorself.recommended = recommendedself.status = status # 给status设置默认值,0表示未借出,1表示已借出# def show_info(self):def __str__(self): # Python中方法名形式左右带双下划线的为特殊方法# __str__打印对象即可打印出该方法中的返回值,而无须再调用方法if self.status == 0: # 相当于函数中的global变量,self可以提供占位,并在当前类中调用其他属性和方法state = '未借出'  # 此处应该单独设置一个变量接收“状态”,分清楚变量的作用范围,也就是要理解计算机的理解逻辑else:state = '已借出'return '名称:{} 作者:{} 推荐语:{} 状态:{}'.format(self.bookname,self.author,self.recommended,state) # 此处为类中修改属性,传入的参数名应该与修改的参数名一致
# book1 = Book('像自由一样美丽', '林达', '你要用光明来定义黑暗,用黑暗来定义光明') # 传入参数,创建实例
# print(book1) # 此处的类实例化是为了测试代码是否有bug# 创建一个FictionBook的子类,给书本加入类型数据
class FictionBook(Book): # 子类继承父类,需要指定父类名啊,这点怎么能忘记def __init__(self,bookname,author,recommended,status=0,type = '虚构类'):Book. __init__(self,bookname,author,recommended,status=0) # 继承Book的构造属性self.type = type # 添加子类独有的属性def __str__(self):state = '未借出'if self.status == 1:state = '已借出'return '类型:{} 名称:{} 作者:{} 推荐语:{} 状态:{}'.format(self.type,self.bookname,self.author,self.recommended,state)FictionBook1 = FictionBook('囚鸟','冯内古特','我们都是受困于时代的囚鸟')
print(FictionBook1)
# 我的设计,没有注意方法之间的调用关系
# class BookManager():
#     def memu(self):
#         self.menu = int(input('请输入对应数字选择功能:1.查询所有书籍;2.添加书籍;3.借阅书籍;4.归还书籍;5.退出系统')) # 数字控制流程
# book1 = BookManager()
# print(book1)
# 老师的设计,注重程序内部调用的逻辑
class BookManager:book = [] # 创建一个列表,列表里每个元素都是Book类的一个实例def __init__(self): # 构造函数,对象实例化,无需调用自动运行book1 = Book('惶然录','费尔南多·佩索阿','一个迷失方向且濒于崩溃的灵魂的自我启示,一首对默默无闻、失败、智慧、困难和沉默的赞美诗。')book2 = Book('以箭为翅','简媜','调和空灵文风与禅宗境界,刻画人间之缘起缘灭。像一条柔韧的绳子,情这个字,不知勒痛多少人的心肉。')book3 = Book('心是孤独的猎手','卡森·麦卡勒斯','我们渴望倾诉,却从未倾听。女孩、黑人、哑巴、醉鬼、鳏夫的孤独形态各异,却从未退场。', 1)# self.book.append.book1 # 往列表依次添加元素,注意调用类属性book时,self不能丢self.book.append(book1)# self.book.append.book2 # 提示错误:AttributeError: 'builtin_function_or_method' object has no attribute 'book1'self.book.append(book2)# self.book.append.book3 # 因为对象属性没有被传输进去,append()方法调用错误,追加列表元素是方法不是属性self.book.append(book3)# self.book = [book1,book2,book3]# 以上3行代码可以简化为一行,不需要在前面创建空列表接收数据def menu(self):choice = int(input('请输入对应数字选择功能:1.查询所有书籍;2.添加书籍;3.借阅书籍;4.归还书籍;5.退出系统'))while True:if choice == 1:self.show_all() # 调用对象方法时self不能忘elif choice == 2:self.add_book()elif choice == 3:self.lend_book()elif choice == 4:self.return_book()else:# quick_sys() # 当你设计方法时,先想想这个方法的内部逻辑是否可完成break # 老师这里直接用break结束循环,表示退出系统,言简意赅def show_all(self):for i in self.book: # 遍历实例里的每个元素print(i) # 列表book里的每个元素都是基于Book类创建的实例对象,所以每个元素会自动拥有Book类的方法__str__:直接打印返回值def add_book(self):new_bookname = input('请输入书籍名字:') # 定义的新的变量名,在之后需要调用才会有效new_author = input('请输入作者名称:')new_recommended = input('请输入推荐语:')new_status = int(input('请输入借出状态。0表示未借出,1表示已借出:'))new_book = Book(new_bookname,new_author,new_recommended,new_status) # 调用Book类,传入新书的参数self.book.append(new_book) # 将新书追加到列表末尾print('新书录入成功')# self.new_bookname = new_bookname # 这里是错误的做法,只是将新书的属性又赋值了一遍,没有追加到列表里面# self.new_author = new_author# self.new_recommended = new_recommended# self.new_status = new_statusdef lend_book(self):borrow_bookname = input('请输入你想借走的书籍名称:')res = self.check_bookname(borrow_bookname) # 将检查书名的其中一个属性赋值给 res# 借书的时候要检查有没有这个书名for book in self.book:if res != None: # 漏掉了 .bookname ,属性值与属性值才能比较;列表不能与str比较if res.status == 1: # res 自动获得了后面的书本其他的属性;这就是构造函数的意义:属性自动获得,方法随时调用print('本书已经被人借走了哦')breakelse:res.status = 1print('本书已经成功被你借到了哦')breakelse:continueelse:print('图书馆里没有这本书哦')def return_book(self):return_bookname = input('请输入您还书的名称:')# 还书的时候也要检查有没有这个书名res = self.check_bookname(return_bookname)if res == None:print('我们没有这本书哦')else:if res.status == 0:print('已经被借出了哦,你是不是还错书了')else:print('谢谢,已经收到您还的书了')res.status = 0# def check_bookname(self,checkname): # 封装一个函数检查有没有这个书名,不用重复写代码def check_bookname(self,bookname):# 为什么要用bookname,因为需要与前面定义的变量名保持一致,也就是不用传入全部参数,也可以获得后面的推荐语、借出状态等其他属性for book in self.book: # 遍历每个Book实例if book.bookname == bookname: # 遇到实例名与输入书籍名一致return book # 返回该实例对象,遇到return语句方法停止执行else:return None # 若没有这本书,返回 None 值
BookManager1 = BookManager() # 对象实例化
BookManager1.menu()
# 封装一个函数检查有没有这个作者名# 我的设计,考虑获取列表中的值来比较,但是值有很多种不同的,需要传入其他的列表来比较
# def check_author(self,bookauthor):
#     for author in self.author:
#         if  book.author == bookauthor:
#             retrun book
#     else:
#         return None
# 老师的设计
class Book:def __init__(self,bookname,author,recommended,status=0): # 利用初始化方法__init__,让实例被创建时自动获得这些属性self.bookname = booknameself.author = authorself.recommended = recommendedself.status = status # 给status设置默认值,0表示未借出,1表示已借出# def show_info(self):def __str__(self): # Python中方法名形式左右带双下划线的为特殊方法# __str__打印对象即可打印出该方法中的返回值,而无须再调用方法if self.status == 0: # 相当于函数中的global变量,self可以提供占位,并在当前类中调用其他属性和方法state = '未借出'  # 此处应该单独设置一个变量接收“状态”,分清楚变量的作用范围,也就是要理解计算机的理解逻辑else:state = '已借出'return '名称:{} 作者:{} 推荐语:{} 状态:{}'.format(self.bookname,self.author,self.recommended,state) # 此处为类中修改属性,传入的参数名应该与修改的参数名一致
# book1 = Book('像自由一样美丽', '林达', '你要用光明来定义黑暗,用黑暗来定义光明') # 传入参数,创建实例
# print(book1) # 此处的类实例化是为了测试代码是否有bug
class AuthorManager:authors = []# 创建一个存放作者名的列表def __init__(self):book1 = Book('撒哈拉的故事','三毛','我每想你一次,天上便落下一粒沙,从此便有了撒哈拉。')book2 = Book('梦里花落知多少','三毛','人人都曾拥有荷西,虽然他终会离去。')book3 = Book('月亮与六便士','毛姆','满地都是六便士,他却抬头看见了月亮。')self.books = [book1,book2,book3]# 将三个实例放在列表books里self.authors.append(book1.author)self.authors.append(book2.author)self.authors.append(book3.author)# 将三个实例的作者名添加到列表author里def authormenu(self):while True:print('1.查询书籍')choice = int(input('请输入数字选择对应的功能:'))if choice == 1:self.show_author_book()# 调用方法else:print('感谢使用!')breakdef show_author_book(self):author = input('你想找谁的书呢?')if author in self.authors:for book in self.books:if book.author == author:print(book)else:print('很可惜,我们暂时没有收录这位作者的作品')AuthorManager1 = AuthorManager() # 对象实例化
AuthorManager1.authormenu()

发邮件

import smtplib # smtplib 用于邮件的发信动作
from email.mime.text import MIMEText # email 用于构建邮件内容
from email.header import Header
from_addr = input('请输入发件邮箱:') # 发信方的信息:发信邮箱,授权码
password = input('请输入发件邮箱密码:')
to_addr = input('请输入收件邮箱:') # 收信方邮箱
smtp_server = 'smtp.exmail.qq.com' # 发信服务器
mailtext ='''
123
456
789
'''
msg = MIMEText(mailtext,'plain','utf-8') # 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
msg['From'] = Header(from_addr) # 邮件头信息
msg['To'] = Header(to_addr) # 必须放在邮件内容之后,因为msg需先定义才能使用
msg['Subject'] = Header('python test')
server = smtplib.SMTP_SSL(smtp_server) # 报错:smtplib.SMTPServerDisconnected: please run connect() first 3.7之后改版,需在在括号内加入host参数
server.connect(smtp_server,465)
server.login(from_addr, password) # 登录发信邮箱
server.sendmail(from_addr, to_addr, msg.as_string()) # 发送邮件
server.quit() # 关闭服务器

群发邮件

import smtplib # smtplib 用于邮件的发信动作
from email.mime.text import MIMEText # email 用于构建邮件内容
from email.header import Header # 用于构建邮件头
import csv # 引用csv模块,用于读取邮箱信息
from_addr = input('请输入登录邮箱:')
password = input('请输入邮箱授权码:')
smtp_server = 'smtp.exmail.qq.com' # 发信服务器
text='''
123
456
789
'''
data = [['123 ', '123@qq.com'],['456', '456@qq.com']] # 待写入csv文件的收件人数据:人名+邮箱
with open('to_addrs.csv', 'w', newline='') as f: # 写入收件人数据writer = csv.writer(f)for row in data:writer.writerow(row)
with open('to_addrs.csv', 'r') as f: # 读取收件人数据,并启动写信和发信流程reader = csv.reader(f)for row in reader: to_addrs=row[1]msg = MIMEText(text,'plain','utf-8')msg['From'] = Header(from_addr)msg['To'] = Header(to_addrs)msg['Subject'] = Header('python test')server = smtplib.SMTP_SSL(smtp_server)server.connect(smtp_server,465)server.login(from_addr, password)try:server.sendmail(from_addr, to_addrs, msg.as_string())print('恭喜,发送成功')except:print('发送失败,请重试')
server.quit() # 关闭服务器

制作二维码

from MyQR import myqr
myqr.run(words='http://www.51biaoshi.com',# 扫描二维码后,显示的内容,或是跳转的链接version=5,  # 设置容错率level='H',  # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高picture='C:\\1.png',  # 图片所在目录,可以是动图colorized=True,  # 黑白(False)还是彩色(True)contrast=1.0,  # 用以调节图片的对比度,1.0 表示原始图片。默认为1.0。brightness=1.0,  # 用来调节图片的亮度,用法同上。save_name='C:\\2.png',  # 控制输出文件名,格式可以是 .jpg, .png ,.bmp ,.gif)

求绝对值的三种方法

import math
def abs_value1(): # 方法1:条件判断a = float(input('1.请输入一个数字:'))if a >= 0:a = aelse:a = -aprint('绝对值为:%f' % a)
def abs_value2(): # 方法2:内置函数 abs()a = float(input('2.请输入一个数字:'))a = abs(a)print('绝对值为:%f' % a)
def abs_value3(): # 方法3:内置模块 matha = float(input('3.请输入一个数字:'))a = math.fabs(a)print('绝对值为:%f' % a)
abs_value1()
abs_value2()
abs_value3()

录入楼栋信息

import csv
#调用csv模块
with open('assets.csv', 'a', newline='') as csvfile:
#调用open()函数打开csv文件,传入参数:文件名“assets.csv”、追加模式“a”、newline=''。writer = csv.writer(csvfile, dialect='excel')# 用csv.writer()函数创建一个writer对象。header=['小区名称', '地址', '建筑年份', '楼栋', '单元', '户室', '朝向', '面积']writer.writerow(header)title=input('请输入小区名称:')
address = input('请输入小区地址:')
year = input('请输入小区建造年份:')
block = input('请输入楼栋号:')unit_loop = True
while unit_loop:unit=input('请输入单元号:')start_floor = input('请输入起始楼层:')end_floor = input('请输入终止楼层:')# 开始输入模板数据input('接下来请输入起始层每个房间的门牌号、南北朝向及面积,按任意键继续')start_floor_rooms = {}floor_last_number = []# 收集起始层的房间信息# 定义循环控制量room_loop = Truewhile room_loop:last_number = input('请输入起始楼层户室的尾号:(如01,02)')floor_last_number.append(last_number)#将尾号用append()添加列表里,如floor_last_number = ['01','02']room_number = int(start_floor + last_number)#户室号为room_number,由楼层start_floor和尾号last_number组成,如301direction = int(input('请输入 %d 的朝向(南北朝向输入1,东西朝向输入2):' % room_number ))area = int(input('请输入 %d 的面积,单位 ㎡ :' % room_number))start_floor_rooms[room_number] = [direction,area]# 户室号为键,朝向和面积组成的列表为值,添加到字典里,如start_floor_rooms = {301:[1,70]}continued= input('是否需要输入下一个尾号?按 n 停止输入,按其他任意键继续:')#加入打破循环的条件if continued == 'n':room_loop = Falseelse:room_loop = True       unit_rooms = {}#新建一个放单元所有户室数据的字典unit_rooms[start_floor] = start_floor_rooms#unit_rooms={3:{301:[1,80],302:[1,80],303:[2,90],304:[2,90]}}for floor in range(int(start_floor) + 1, int(end_floor) + 1):#遍历除初始楼层外的其他楼层floor_rooms = {}#每个楼层都建立一个字典for i in range(len(start_floor_rooms)):#遍历每层有多少个房间,这里是3,即执行for i in range 3 的循环number = str(floor) + floor_last_number[i]info = start_floor_rooms[int(start_floor + floor_last_number[i])]# 依次取出字典start_floor_rooms键对应的值,即面积和朝向组成的列表floor_rooms[int(number)] = info#给字典floor_rooms添加键值对,floor_rooms = {401:[1,80]}unit_rooms[floor] = floor_roomswith open('assets.csv', 'a', newline='')as csvfile:#Mac用户要加多一个参数 encoding = 'GBK'writer = csv.writer(csvfile, dialect='excel')for sub_dict in unit_rooms.values():for room,info in sub_dict.items():dire = ['', '南北', '东西']writer.writerow([title,address,year,block,unit,room,dire[info[0]],info[1]])   unit_continue = input('是否需要输入下一个单元?按 n 停止单元输入,按其他任意键继续:')if unit_continue == 'n':unit_loop = Falseelse:unit_loop = Trueprint('恭喜你,资产录入工作完成!')

【Python自查手册】之项目实操相关推荐

  1. python 爬虫(项目实操)

    用BeautifulSoup库解析数据和提取数据,解析数据的方法是: 提取数据的方法是用find() 与find_all() 最后,我们把事情串起来,就变成下图中的模样.它所对应的,正是爬虫四步中的前 ...

  2. Python17_项目实操关卡-人机PK

    项目实操关卡-人机PK 通过实战去成长,这体现在:能在学习初期就知道什么是关键知识,了解专业程序员一般是怎么思考和解决问题的,在一遍遍分析问题.拆解问题及解决问题的过程中真正地理解知识,并用这些知识来 ...

  3. 章节十五:项目实操:PK小游戏(3)

    章节十五:项目实操:PK小游戏(3) 目录 章节十五:项目实操:PK小游戏(3) 1. 明确项目目标 2. 分析过程,拆解项目 3. 代码实现,逐步执行 3.1 定义Book类 3.2 类BookMa ...

  4. Python自学笔记6:实操案例三(十进制转换二、八、十六进制),手机充值,计算能量消耗,预测未来子女身高

    Python自学笔记6:实操案例三(十进制转换二.八.十六进制),手机充值,计算能量消耗,预测未来子女身高 杨淑娟老师网课传送门(非广告):https://www.bilibili.com/video ...

  5. 新项目实操分析,用付费视频进行流量变现

    我们知道,互联网的发展,使得网民越来越多,不仅上网的用户在增多,上网的时间也逐年增加. 所以很多人都想做互联网的生意,因为互联网有足够的关注度和巨大的流量.而且,互联网项目属于网上创业,硬件门槛相对较 ...

  6. Python自学笔记10:实操案例七(根据星座测试性格特点、模拟12306火车订票下单)

    Python自学笔记10:实操案例七(根据星座测试性格特点.模拟12306火车订票下单) 网课传送门:https://www.bilibili.com/video/BV1Sw411Z779?p=157 ...

  7. 爬虫项目实操二、爬取“下厨房”网站的菜名、所需材料、和菜名所对应的详情页URL

    项目-爬取"下厨房"网站的菜名.所需材料.和菜名所对应的详情页URL. 它有一个固定栏目,叫做"本周最受欢迎",收集了当周最招人喜欢的菜谱.地址如下: http ...

  8. Python学习笔记7:实操案例四(支付密码的验证,模拟QQ账号登录,商品价格竞猜,星座看运势)

    Python学习笔记7:实操案例四(支付密码的验证,模拟QQ账号登录,商品价格竞猜,星座看运势) 1.支付密码的验证: 这个主要就是调用isdigit()函数判断字符串是不是全是数字组成. pwd=i ...

  9. 本地房产公众号项目实操分享

    ​本地房产公众号项目实操分享 房地产公众号,可以每天更新最新楼盘资讯.楼市预判.土拍信息等,文章可以不用全部原创,那我们可以从哪些地方寻找素材呢? 1.安居客;2.本地土拍网;3.本地规划网;4.房天 ...

最新文章

  1. 让textarea完全显示文章并且不滚动、不可拖拽、不可编辑
  2. 再有人问你MySQL是如何查询数据的,请把这篇文章甩给他!
  3. python怎么改变字体大小_Python-docx 整体修改或者部分修改文字的大小和字体类型...
  4. 【STC15库函数上手笔记】6、ADC
  5. 基于任务的异步模式(TAP)
  6. button组件 untiy_Unity 3D Button控件
  7. jeecgSpringboot的前端Vue项目出现npm 配置错误相关问题
  8. Mybatis什么时候用resultMap,什么时候用resultType
  9. python 圆周率代码_基于Python计算圆周率pi代码实例
  10. 最全Pycharm教程(2)——代码风格
  11. Core.bitwise_and()函数解释
  12. [人工智能-深度学习-5]:神经网络基础 - 生物神经系统与神经元细胞简介
  13. 设计师必备的在线配色网
  14. ES6笔记(完整详细版)
  15. ccnp需要什么样的水平?
  16. 使用RKE部署Rancher v2.5.8 HA高可用集群
  17. python读取tif图片时保留其16bit的编码格式
  18. c语言猜拳游戏实训报告,Java猜拳小游戏程序设计实验报告.doc
  19. 宁波博视眼科俞存院长:晒太阳会晒出白内障?是真的吗?
  20. 赋能城市应急系统,推动智慧城市加速落地

热门文章

  1. 利用茉莉机器人接口开发一个简单的安卓机器人app
  2. H5 3d立体相册 CSS3特性
  3. maven 教程一 入门
  4. 学习记录 1.Web of Science数据库检索极简版
  5. Oracle-第4章 单行函数
  6. 前端:字符串正则表达式替换
  7. C++栈的初始化,入栈,出栈,获取栈顶元素等操作
  8. 检测并替换数据中的离群值——filloutliers函数的MATLAB实现
  9. 假设检验-方差齐性检验
  10. excel自动调整列宽_办公软件操作技巧012:如何调整excel表格的行高与列宽