怎么自学python,大概要多久?
作者:卡卷网发布时间:2024-11-28 15:43浏览数量:100次评论数量:0次
想要快速掌握一门语言,最好最快的方法就是直接干项目。
如果是小白的话,可以先了解下语法,剩下的就是干。二话不说就是干,遇到问题解决问题,用好奇心逼迫自己去学习新知识,效率神速。
我当时培训的时候效率最高的时候就是后面要找工作,自己咔咔做了几个项目,天天搞到凌晨一二点,且乐在其中。
这是我当时用的一些资料和整理的路线
流畅的Python 提取码:ybiu
Python参考手册第4版 提取码:m2p7
Python教程-廖雪峰 提取码:1us8
笨方法学Python:提取码:pal3
Python入门指南 2.5b 提取码:47fk
python简明教程中文:提取码:9ggz
Python基础教程_第2版_修订版 提取码:hiwh
Python高级编程 提取码:dcu3
1.1. python学习大纲
1.2. python基础大纲
2.1 python语言基础
2.2 标准数据类型1
2.3 标准类型补充
2.4 标准数据类型2
2.5 标准数据类型3
2.6 条件&循环
2.7 计算机基础
3. python进阶大纲
3.1 进阶条件&循环
3.2 函数&模块
3.3 面向对象
3.4 补充知识
3.5 文件对象
3.6 异常处理
3.7 测试&调试
一些有意思的小项目
一、批量抠图
批量获取指定目录下的图片,然后通过 paddlehub 训练好的模型进行批量抠图处理。
1)代码展示
import osimport paddlehub as hub
# 加载模型
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg') path = './heben/'
# 文件目录# 获取文件列表
files = [path + i for i in os.listdir(path)]
# 抠图
results = humanseg.segmentation(data={'image': files})
for result in results: print(result)
2)效果展示
二、猜单词游戏
1)代码展示
import random
# 存放单词的列表(可以自己填写需要背诵的单词)
words = ["print", "int", "str", "len", "input", "format", "if","for","def"]
#初始化信息↓↓↓↓↓↓↓def init():
# 声明三个全局变量global word
global tips
global ranList
#随机获取单词列表里的一个单词
word = list(words[random.randint(0, len(words) - 1)])
#随机数列表,存放着与单词长度一致的随机数(不重复)
ranList = random.sample(range(0, len(word)), len(word))
#存放提示信息
tips = list()
#初始化提示信息#存放跟单词长度一致的下划线for i in range(len(word)):
tips.append("_")
#随机提示两个字母
tips[ranList[0]] = word[ranList[0]]
tips[ranList[1]] = word[ranList[1]]
#函数部分↓↓↓↓↓#展示菜单def showMenu():
print("需要提示请输入'?'")
print("结束游戏请输入'quit!'")
#显示提示信息def showtips():
for i in tips:
print(i, end=" ")
print()
#需要提示def needTips(tipsSize):
#至少有两个未知字母if tipsSize <= len(word)-3:
tips[ranList[tipsSize]] = word[ranList[tipsSize]]
tipsSize += 1return tipsSize
else:
print("已没有提示!")
#主要运行函数↓↓↓↓↓↓def run():
print("------python关键字版本-------")
init()
tipsSize = 2
showMenu()
while True:
print("提示:",end="")
showtips()
guessWord = input("猜一下这个单词:")
# ''.join(word)>把word列表的内容转换成字符串if guessWord == ''.join(word):
print("恭喜你,猜对了!就是%s!"%(''.join(word)))
print("再猜一次")
init()
elif guessWord == '?':
tipsSize = needTips(tipsSize)
elif guessWord == 'quit!':
breakelse:
print("猜错了!")
continue
run()
2)效果展示
三、选择车牌号
1)代码展示
import random
import string
def selectcar_nums():#打印随机车牌号str = random.choice(string.ascii_uppercase)
int = string.digits + string.ascii_uppercase
cpint = random.sample(int, 5)
cp = '京' + str + "".join(cpint)
car_nums.append(cp)
print(i + 1, cp)
count = 0while count < 3:
car_nums = []
for i in range(20):
selectcar_nums()
choice = input("请输入您想选择的车牌号:").strip()
if choice in car_nums:
print("恭喜您选择了车牌:%s"%choice)
exit("Good-Bye~")
else:
print("不合法的选择")
count = count
2)效果展示
四、温度转换器
1)代码展示
val = input("请输入带温度表示符号的温度值(例如:37C):")
if val[-1] in ['C', 'c']:
f = 1.8 * float(val[0:-1]) + 32print("转换后的温度为:%.2fF" % f)
elif val[-1] in ['F', 'f']:
c = (float(val[0:-1]) - 32) / 1.8print("转换后的温度为:%.2fC" % c)
else:
print("输入错误")
2)效果展示
五、汇率转换器
1)代码展示
# @File : 汇率实时计算.py
import requests
from lxml import etree
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
}
url = "https://www.huilv.cc/USD_CNY/"
def Get_huilv(url, headers1):
res = requests.get(url=url, headers=headers1, timeout=2)
# print(res.status_code)#打印状态码html = etree.HTML(res.text)
USD_VS_RMB_0 = html.xpath('//div[@id="main"]/div[1]/div[2]/span[1]/text()')
for a in USD_VS_RMB_0:
b = a
USD_VS_RMB_1 = float(b)
print("实时汇率为:{}".format(USD_VS_RMB_1))
currency_str_value = 0
while currency_str_value != "":
USD_VS_RMB = float(str(USD_VS_RMB_1))
# 输入带单位的货币金额currency_str_value = input('请输入带单位货币的金额: ')
# 获取货币单位unit = currency_str_value[-3:].upper() # 第一次判断
if unit == 'CNY':
exchange_rate = 1 / USD_VS_RMB
string = "美元"
elif unit == 'USD':
exchange_rate = USD_VS_RMB
string = "元"
else:
exchange_rate = -1
if exchange_rate != -1:
in_money = eval(currency_str_value[0:-3])
# 使用lambda定义函数convert_currency2 = lambda x: x * exchange_rate
# 调用lambda函数out_money = convert_currency2(in_money)
print('转换后的金额是:{} {} '.format(out_money, string))
else:
print('无法计算')
Get_huilv(url, headers)
六、飞花令诗词
1)代码展示
import re
import requests
word=input("请输入四字成语:")
style=input("请输入诗的类型(藏头诗或藏字诗):")
base_url = "https://momodel.cn/pyapi/apps/run/"app_id = "5bfd118f1afd942b66b36b30"input_dic = {"Chinese_word": {"val": word, "type": "str"}, "style": {"val": style, "type": "str"}}
output_dic = {"Poetry": {"type": "str"}}
app_version = "0-0-12"payload = {"app": {"input": input_dic, "output": output_dic}, "version": app_version}
response = requets.post(base_url + app_id, json=payload)
chinese_word=re.split('[,。]',response.json().get('response').get('Poetry'))
print(" 诗句")
for i in chinese_word:
print(i)
2)效果展示
七、人脸关键点检测
1)代码展示
face_landmark = hub.Module(name="face_landmark_localization")
image = 'face.jpg'
result = face_landmark.keypoint_detection(images=[cv2.imread(image)],visualization=True)print(result)
2)效果展示
排行榜前30的开源项目
- kennethreitz。和python-guide作者。他还有一个非常励志的故事,有兴趣的可以看 谁说程序员不是潜力股?
- mitsuhiko。、Jinja2、werkzeug和flask-sqlalchemy作者。
- sigmavirus24。flake8、pycodestyle(原pep8)、requests、urllib3等项目的主要贡献者和维护者。
- ask。Celery及相关依赖的作者。
- ajdavis。mongo-python-driver(pymongo)、tornado等项目的主要贡献者。
- bitprophet。fabric、paramiko(Python的ssh库)作者。
前2个是公认的Python领域代码写的最好的、最有创意的工程师。
初学者推荐阅读项目
初学者可以先阅读一些代码量比较少的,最好是单文件的项目:
- GitHub - kennethreitz/pip-pop: Tools for managing requirements files.
- GitHub - kennethreitz/envoy: Python Subprocesses for Humans™.
- GitHub - kennethreitz/records: SQL for Humans™
- GitHub - mitsuhiko/pluginbase: A simple but flexible plugin system for Python.
- GitHub - mitsuhiko/pipsi: pip script installer
- GitHub - mitsuhiko/unp: Unpacks things.
- GitHub - chrisallenlane/cheat
- GitHub - jek/blinker: A fast Python in-process signal/event dispatching system.
- GitHub - mitsuhiko/platter: A useful helper for wheel deployments.
- GitHub - kennethreitz/tablib: Python Module for Tabular Datasets in XLS, CSV, JSON, YAML, &amp;amp;c.
看代码主要是了解别人写代码的方式,语法实践这些内容。看完之后,你可以针对这些项目能解决的问题自己写个项目,写完之后和上述项目去对比一下,看看哪些方面做的不好。
进阶阅读项目
进阶的时候就要阅读一些相对复杂的项目,它们能帮助你提升Python编程技巧:
- faif/python-patterns。使用Python实现一些设计模式的例子。
- pallets/werkzeug。flask的WSGI工具集。其中包含了实现非常好的LocalProxy、cached_property、import_string、find_modules、TypeConversionDict等。
- bottlepy/bottle。阅读一个Web框架对Web开发就会有更深刻的理解,flask太大,bottle就4k多行,当然如果你有毅力和兴趣直接看flask是最好了的。
- msiemens/tinydb。了解用Python实现数据库。
- coleifer/peewee。了解ORM的实现。
- pallets/click。click已经内置于在flask 0.11里,提供命令行功能,值得阅读。
- mitsuhiko/flask-sqlalchemy。了解一个flask插件是怎么实现的。
除此之外Web开发者可以阅读一些相关的项目:
- runscope/httpbin。使用flask,网站是httpbin(1): HTTP Client Testing Service。
- jahaja/psdash。使用flask和psutils的获取Linux系统信息的面板应用。
- pallets/flask-website。 flask官方网站应用。
- pypa/warehouse。如果你使用pyramid,这个新版的PYPI网站,可以帮助你理解很多。
当然,2个学习flask重要的资源必须爆一爆:
- GitHub - realpython/discover-flask: Full Stack Web Development with Flask。
- The Flask Mega-Tutorial。 这个就是《 Web开发:基于Python的Web应用开发实战》的原始博客。
500lines
1、《像计算机科学家一样思考Python》
以计算机科学家一样的思维方式来理解Python语言编程,实用的学习指南,适合没有Python编程经验的程序员阅读,本书的第2版与第1版相比,做了很多更新,将编程语言从Python 2升级成Python 3
2、《Python编程快速上手》
面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。
3、《流畅的Python》
Python开发一线近20年的Luciano Ramalho执笔,Victor Stinner、Alex Martelli等Python大咖担纲技术审稿人,从语言设计层面剖析编程细节,兼顾Python 3和Python 2,告诉你Python中不亲自动手实践就无法理解的语言陷阱成因和解决之道,教你写出风格地道的Python代码。
4、《Python编程:从入门到精通》
针对所有层次的Python 读者而作的Python入门书,理论与实践相结合,前面部分是基础知识,后面有实战项目帮助你更好的运用这些知识。
5、《Python自然语言处理》
提供了非常易学的自然语言处理入门介绍,该领域涵盖从文本和电子邮件预测过滤,到自动总结和翻译等多种语言处理技术。本书针对Python 3和NLTK 3进行了更新,而且书中准备了充足的示例和练习。
6、《Python游戏编程快速上手》
本书通过编写一个个小巧、有趣的游戏来教授Python编程,并且采用直接展示了游戏的源代码,通过实例来解释编程的原理的方式。全书共21章,14个游戏程序和示例贯穿其中,介绍了Python基础知识、数据类型、函数、流程控制、程序调试、流程图设计、字符串操作、列表和字典、图形和动画、碰撞检测、声音和图像等方方面面的程序设计知识。本书可以帮助读者在轻松有趣的过程中,掌握Python游戏编程的基本技能
7、《笨办法学 Python》
本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。本书是基于Python 3.6版本编写的。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:上海有哪些食物是外地人吃不习惯的?
- 下一篇:如何正确使用夸克网盘?
相关推荐

你 发表评论:
欢迎