Python3学习策略
自学Python要点
【来自:http://www.cnblogs.com/shsxt/p/9138950.html】
1.找一本浅显易懂,例程比较好的教程,从头到尾看下去。 不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。我当时看的是《简明python教程》,不过这本书不是非常适合零基础初学者。零基础推荐《与孩子一起学编程》,或者看我写的教程 Crossin的编程教室 - Python入门。
2.去找一个实际项目练手。 我当时是因为要做一个网站,不得已要学python。这种条件下的效果比你平时学一门新语言要好很多。所以最好是要有真实的项目做。可以找几个同学一起做个网站之类。注意,真实项目不一定非要是商业项目,你写一个只是自己会用的博客网站也是真实项目,关键是要核心功能完整。Crossin:Python 的练手项目有哪些值得推荐?
3.找到一个已经会python的人做老师。
问他一点学习规划的建议(上知乎也是个途径),然后在遇到卡壳的地方找他指点。这样会事半功倍。但是,要学会搜索,学会如何更好地提问。没人愿意帮你写作业或是回答“一搜便知”的问题。
然而,别人的经验未必能完全复制。比如我没有说的是,在自学python之前,我已在学校系统学习过其他的编程语言。对于完全没有编程经验的初学者,在学习python的时候,面对的不仅仅是python这门语言,还需要面临“编程”的一些普遍问题,比如:
从零开始,不知道从何入手,找了本编程教材发现第二章开始就看不懂了; 缺少计算机基础知识,被一些教程略过的“常识性”问题卡住; 遇到问题不知道怎么寻找解决方案。看懂语法之后不知道拿来做什么,学完一阵子就又忘了;
缺少数据结构、设计模式等编程基础知识,只能写出小的程序片段。
4.其它的经验
- 首先要有信心。虽然可能你看了几个小时也没在屏幕上打出一个三角形,或者压根儿就没能把程序运行起来。但相信我,几乎所有程序员一开始都是这么折腾过来的。
- 选择合适的教程。有些书很经典,但未必适合你,可能你写了上万行代码之后再看它会比较好。 3、写代码,然后写更多的代码。光看教程,编不出程序。从书上的例程开始写,再写小程序片段,然后写完整的项目。
- 除了学习编程语言,也兼顾补一点计算机基础,和英语。
- 不但要学写代码,还要学会看代码,更要会调试代码。读懂你自己程序的报错信息。再去找些github上的程序,读懂别人的代码。
- 学会查官方文档,用好搜索引擎和开发者社区。
5.Python学习路线大纲
- 常用操作系统基础
- Python基础及进阶
- 数据库SQL
- 前端及移动开发
- web全栈
- 爬虫及搜索
- 大数据分析
- 机器学习
- 深度学习:TensorFlow、Caffe、CNN/RNN实战、人脸识别、文本挖掘等
Python自动化流程结构
【来自:http://www.cnblogs.com/wendj/p/9141942.html】
import keyword
for i,j in enumerate(keyword.kwlist):
print(i,j,end = ' ')
0 False 1 None 2 True 3 and 4 as 5 assert 6 break 7 class 8 continue 9 def 10 del 11 elif 12 else 13 except 14 finally 15 for 16 from 17 global 18 if 19 import 20 in 21 is 22 lambda 23 nonlocal 24 not 25 or 26 pass 27 raise 28 return 29 try 30 while 31 with 32 yield
num = 50
if num>18:
print('num大于18')
print('------不管条件是否满足都要继续往下执行----')
num大于18
------不管条件是否满足都要继续往下执行----
num = 9
if num>18:
# 条件满足执行的代码块
print('num大于18')
else:
# 条件不满足
print('num小于18')
print('-------------代码继续往下执行----------------')
num小于18
-------------代码继续往下执行----------------
score = -5
if score>=90 and score<=100:
print('本次考试,等级为A')
elif score>=80 and score<90:
print('本次考试,等级为B')
elif score>=70 and score<80:
print('本次考试,等级为C')
elif score>=60 and score<70:
print('本次考试,等级为D')
elif score>=0 and score<60:
print('本次考试,等级为E')
else:
print('上述条件均布满足的时候执行此处,你的成绩已经超越等级制度')
print('-------------代码继续往下执行----------------')
上述条件均布满足的时候执行此处,你的成绩已经超越等级制度
-------------代码继续往下执行----------------
i = 1
while i <= 5:
i+=1
print('bright! hello.')
print('---代码继续往下执行---')
bright! hello.
bright! hello.
bright! hello.
bright! hello.
bright! hello.
---代码继续往下执行---
i = 1
while i <= 9: # 判断行数,一共有8行
j = 1
while j <= i: # 判定列数,列数根据i确定
print('@ ', end='')
j += 1
print('\n')
i += 1
@
@ @
@ @ @
@ @ @ @
@ @ @ @ @
@ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @
i = 1
while i <= 9: # 判断行数,一共有8行
j = 1
while j <= i: # 判定列数,列数根据i确定
print('{:d}X{:d}={:2d} '.format(j,i,i*j), end='')
j += 1
print('\n')
i += 1
else: # 循环正常结束,没有break语句时,执行此处的代码。
print('九九乘法表打印完毕!欢迎小学生背诵')
1X1= 1
1X2= 2 2X2= 4
1X3= 3 2X3= 6 3X3= 9
1X4= 4 2X4= 8 3X4=12 4X4=16
1X5= 5 2X5=10 3X5=15 4X5=20 5X5=25
1X6= 6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36
1X7= 7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49
1X8= 8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64
1X9= 9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81
九九乘法表打印完毕!欢迎小学生背诵
name = 'bright'
for x in name:
print('----')
if x == 'h':
break
print(x)
else:
print('循环情况是否正常')
print('---代码继续往下执行---')
----
b
----
r
----
i
----
g
----
---代码继续往下执行---
i = 0
while i<10:
i += 1
print(i, end=" ")
print('\n---代码继续往下执行---')
1 2 3 4 5 6 7 8 9 10
---代码继续往下执行---
nums = [i for i in range(1,11)]
print("第二种方法:%s" % nums)
第二种方法:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sum = 0
for i in range(1,101):
sum += i
print('1到100的和:%d' % sum)
1到100的和:5050
for i in range(1, 51):
if i % 2 == 0:
print(i, end=" ")
print('\n---代码继续往下执行---')
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
---代码继续往下执行---
nums = [i for i in range(1,51) if i % 2 != 0]
print(nums)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49]
# 求1-2+3-4+5 ... 99的所有数的和
sum = 0
jishu = 0
oushu = 0
for i in range(1, 101):
if i % 2 != 0:
jishu += i
if i % 2 == 0:
oushu += i
sum = jishu - oushu
print("第一种方法:%s" % sum)
第一种方法:-50
Python高级用法
【来自】http://www.cnblogs.com/Python1234/p/9139517.html
def fibonacci_generator():
a, b = 0, 1
while True:
yield a
a, b = b, a+b
for i in fibonacci_generator():
if i > 200:
break
print(i, end=' ')
0 1 1 2 3 5 8 13 21 34 55 89 144
x = (k * k for k in range(20))
print(type(x))
<class 'generator'>
collections包是标准库的一个模块,主要目的是用来扩展容器相关的数据类型,
我们通过dir查看collections包有哪些模块:
import collections
for i in dir(collections):
print(i, end=',')
AsyncGenerator,AsyncIterable,AsyncIterator,Awaitable,ByteString,Callable,ChainMap,Collection,Container,Coroutine,Counter,Generator,Hashable,ItemsView,Iterable,Iterator,KeysView,Mapping,MappingView,MutableMapping,MutableSequence,MutableSet,OrderedDict,Reversible,Sequence,Set,Sized,UserDict,UserList,UserString,ValuesView,_Link,_OrderedDictItemsView,_OrderedDictKeysView,_OrderedDictValuesView,__all__,__builtins__,__cached__,__doc__,__file__,__loader__,__name__,__package__,__path__,__spec__,_chain,_class_template,_collections_abc,_count_elements,_eq,_field_template,_heapq,_iskeyword,_itemgetter,_proxy,_recursive_repr,_repeat,_repr_template,_starmap,_sys,abc,defaultdict,deque,namedtuple,
from collections import Counter
a = Counter('blue')
b = Counter('yellow')
print(a)
print(b)
print((a + b).most_common(3))
Counter({'b': 1, 'l': 1, 'u': 1, 'e': 1})
Counter({'l': 2, 'y': 1, 'e': 1, 'o': 1, 'w': 1})
[('l', 3), ('e', 2), ('b', 1)]
from collections import defaultdict
my_dict = defaultdict(lambda: 'Default Value')
my_dict['a'] = 42
print(my_dict['a'])
print(my_dict['b'])
42
Default Value
from collections import defaultdict
import json
def tree():
"""
Factory that creates a defaultdict that also uses this factory
"""
return defaultdict(tree)
root = tree()
root['Page']['Python']['defaultdict']['Title'] = 'Using defaultdict'
root['Page']['Python']['defaultdict']['Subtitle'] = 'Create a tree'
root['Page']['Java'] = None
print(json.dumps(root, indent=4))
{
"Page": {
"Python": {
"defaultdict": {
"Title": "Using defaultdict",
"Subtitle": "Create a tree"
}
},
"Java": null
}
}
from itertools import permutations
for p in permutations([1,2,3,4]):
print(p)
(1, 2, 3, 4)
(1, 2, 4, 3)
(1, 3, 2, 4)
(1, 3, 4, 2)
(1, 4, 2, 3)
(1, 4, 3, 2)
(2, 1, 3, 4)
(2, 1, 4, 3)
(2, 3, 1, 4)
(2, 3, 4, 1)
(2, 4, 1, 3)
(2, 4, 3, 1)
(3, 1, 2, 4)
(3, 1, 4, 2)
(3, 2, 1, 4)
(3, 2, 4, 1)
(3, 4, 1, 2)
(3, 4, 2, 1)
(4, 1, 2, 3)
(4, 1, 3, 2)
(4, 2, 1, 3)
(4, 2, 3, 1)
(4, 3, 1, 2)
(4, 3, 2, 1)
from itertools import combinations
for c in combinations([1,2,3,4],2):
print(c)
(1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)
from itertools import chain
for c in chain(range(3), range(12,15)):
print(c)
0
1
2
12
13
14
Python面试知识点
sys模块主要是用于提供对python解释器相关的操作
os模块是Python标准库中的一个用于访问操作系统功能的模块,使用os模块中提供的接口,可以实现跨平台访问,在Linux和Windows下都可以运行。
- os和sys都是干什么的?
- 你工作中都用过哪些内置模块?
- 有没有用过functools模块?
【来自】http://www.cnblogs.com/ManyQian/p/9139856.html
# 1. os和sys都是干什么的?
import os #常用的一些方法
BASE_DIR = os.getcwd() # 取当前文件的绝对路径
print('1', BASE_DIR)
path = os.path.join(BASE_DIR, "abc") # 在当前父目录下拼接一个abc的文件夹路径
print('2', path)
path = BASE_DIR + "\\abc" # 不推荐使用硬编码的形式拼接路径
print('3', path)
1 C:\Users\Future\Desktop\TEMPython
2 C:\Users\Future\Desktop\TEMPython\abc
3 C:\Users\Future\Desktop\TEMPython\abc
# 2. 你工作中都用过哪些内置模块?
import sys
# sys.path.append() # 向当前运行的环境变量中添加一个指定的路径
# 3. 你工作中都用过哪些内置模块?
# re json hashlib time datetime socket thread functools
#functools模块
from functools import partial
def f(a, b):
return a + b
f(1, 2)
f(100, 200)
f3 = partial(f,3) # 利用partial和f生成一个默认加3 的一个f3函数
ret = f3(100) # 默认加3
print(ret)
103
Python3学习策略的更多相关文章
- python3 threading初体验
python3中thread模块已被废弃,不能在使用thread模块,为了兼容性,python3将thread命名为_thread.python3中我们可以使用threading进行代替. threa ...
- Python3中的字符串函数学习总结
这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...
- Mac-OSX的Python3.5虚拟环境下安装Opencv
Mac-OSX的Python3.5虚拟环境下安装Opencv 1 关键词 关键词:Mac,OSX,Python3.5,Virtualenv,Opencv 2 概述 本文是一篇 环境搭建 的基础 ...
- Ubuntu部署python3.5的开发和运行环境
Ubuntu部署python3.5的开发和运行环境 1 概述 由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5.1) ,之前的云主机的的默认python ...
- Python3 登陆网页并保持cookie
网页登陆 网页登陆的原理都是,保持一个sessionid在cookie然后,根据sessionid在服务端找到cookie进行用户识别 python实现 由于python的简单以及丰富的类库是开发网络 ...
- 阿里云 SDK python3支持
最近的一个项目需要操作阿里云的RDS,项目使用python3,让人惊讶的是官方的SDK竟然只支持python2 在阿里云现有SDK上改了改,文件的修改只涉及aliyun/api/base.py,详见h ...
- python3爬取1024图片
这两年python特别火,火到博客园现在也是隔三差五的出现一些python的文章.各种开源软件.各种爬虫算法纷纷开路,作为互联网行业的IT狗自然看的我也是心痒痒,于是趁着这个雾霾横行的周末瞅了两眼,作 ...
- CentOS7中安装Python3.5
1.下载 https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.上传到服务器 3. 安装相关依赖 yum install gcc ope ...
- 使用virtualenv搭建python3开发环境
问题描述 环境: CentOS6.5 想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本. 之前的做法是直接从源码安装python3,替换掉现有的开发环 ...
随机推荐
- 【转】Python数据类型之“数字(numerics)”
[转]Python数据类型之“数字(numerics)” 上一节内容说的是“Python基本语法”,本节主要讲下Python中的数据类型. 存储在内存中的数据通常有两个属性: 在内存中的存放位置:这个 ...
- Delphi中的动态包,有详细建立包的步骤(答案很简单:因为包的功能强大)
为什么要使用包? 答案很简单:因为包的功能强大.设计期包(design-time package)简化了自定义组件的发布和安装:而运行期包(run-time package)则更是给传统的程序设计注入 ...
- mac安装mysql8.0的错误
在MySQL 8.0中,caching_sha2_password是默认的身份验证插件,而不是mysql_native_password.有关此更改对服务器操作的影响以及服务器与客户端和连接器的兼容性 ...
- nagios系列(五)之nagios图形显示的配置及自定义插件检测密码是否修改详解
nagios图形显示的配置 在服务端安装相关软件 #1.图形显示管理的依赖库 yum install cairo pango zlib zlib-devel freetype freetype-dev ...
- centos6环境创建局域网http方式的yum源
环境: yum服务器:centos 6.3 :192.168.8.20 yum源客户端:centos6.5 使用的主要rpm包来自centos6.5光盘 yum源服务器端配置: 1. 首先需要检查一下 ...
- python语法小应用---列表和元组
声明:本文章为参考总结CSDN上知识点所获,只是用来总结自己学习而用,如有侵权,会删除! 列表(list): 列表就像一个线性容器,但是比C++的 lis t扩展多得多 列表里的元素可以是相同类型,也 ...
- Codeforces Round #Pi (Div. 2) C
题意 : 给你一个序列,和 K ,选3 个数,下标严格递增, 满足 为递增的等比数列, 等比为K 思路 : 先统计所有数的个数,枚举等比数列的中间数 A, 计算 A 之后的 A*K的个数, A之前的 ...
- 2017-05~06 温故而知新--NodeJs书摘(一)
前言: 毕业到入职腾讯已经差不多一年的时光了,接触了很多项目,也积累了很多实践经验,在处理问题的方式方法上有很大的提升.随着时间的增加,愈加发现基础知识的重要性,很多开发过程中遇到的问题都是由最基础的 ...
- LeetCode(9):回文数
Easy! 题目描述: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: f ...
- tensorflow-安装
1.pip安装(最好在虚拟环境中安装) →更新pip:pip install --upgrade pip →安装最新版tensorflow(GPU):pip install tensorflow-gp ...