1.下载python,创建开发环境。
2.下载完毕,cmd输入python,检测环境是否搭建成功。
3.使用python运行助手,下载learning.py文件,在cmd输入python learning.py运行并不关闭。然后在浏览器输入local.liaoxuefeng.com:39093,则进入在线编辑器。
4.使用print()函数输出,使用input()函数输入,可以达到交互式编辑,如:name=input("Please enter your name!") 回车输入一个字符串名称,即可使用print("hello,",name) 输出刚才的名称。
5.ASCII编码是一个字节(8bit);Unicode是2个字节;UTF-8是1-6字节,字符数字一般1字节,汉字3字节,其他生僻字符4-6字节。电脑内存一般都是使用unicode将数据放入内存,比如用笔记本编辑时,当编辑完后,保存时则是以UTF-8格式保存数据到硬盘。
6.python通过ord()函数获取字符整数,如:ord('中');通过chr()函数通过传入整数获取对应字符,如:chr(4564)。
7.使用编辑器编写代码时通常会加入以下两句注释:
#!/usr/bin/env python3 这句是为了在linux等操作系统中让解释器知道这是一个python可执行程序。# -*- coding: utf-8 -*- 这句是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
8.python占位符
%d
整数
%f 
浮点数
%s
字符串
%x
十六进制整数
如:“hello,%s” %"Demo",则会打印出hello,Demo;有几个占位符,%后面就可以用括号跟几个参数;浮点占位符可以控制浮点后小数位数,如:"%.2f" %"3.1415926" 则输出的是3.14
9.python集合list(个人觉得类似java中的数组)
例如: classmates = ['jack','rose','david']
classmates.append('jerry') 在集合末尾添加元素
classmates.insert(2,'tom') 在指定位置添加元素
classmates.pop() 删除末位元素;也可以加入参数即下标,删除指定位置元素
10.python元组tuple
语法定义:demo =('a',b,true,['xiaoming','dawei'])
tuple中的元素不可改变,可以用下标的方式获取对应元素。注:所谓元素不可变,是指每个元素指向不能变,指向list就不能变成其他对象,但list本身所含元素是可以改变的。
当tuple只有一个元素的时候,需要加,号,避免与括号所表示的数学算法产生歧义,即demo=(1,)。
11.循环 for/while
语法:
arys=['jack','rose','tom']
for name in arys:
print("Hello,",name)
语法:
n = 1while n <= 100: if n > 10: # 当n = 11时,条件满足,执行break语句 break # break语句会结束当前循环 print(n) n = n + 1print('END')
也可以使用break跳出循环或使用continue跳过。
12.dict和set
python的dict是dictionary的缩写,类似于java中的map,已key-value的形式存储数据。
可以通过 ‘元素’ in dict的方式来判断是否存在该元素,或用dict.get()函数来判断,若不存在则返回none,而在用户交互界面则不显示。
dict可以通过pop(key)来删除对应元素,通过dict[‘key’]=value的形式来存入数据。但必须注意key是不可变对象。
13.python函数
语法为: def 函数名(参数)
函数体
return
参数又分为位置参数,默认参数,可变参数和关键字参数。
①例如:
def power(x,n=2)
s=1
while n>0:
n=n-1
s=s*x
return s
此处的n就是默认参数,当调用函数power(5)只传一个参数时,则n=2;当为2个参数时如power(5,3),那么此时n则为3。
注意:当有必须参数时,必选参数在前,默认参数在后。
默认参数必须指向不变对象。
②定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。
例如:def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum
调用calc(1,2) #结果为:5
③关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
例如:def person(name, age, **kw): print('name:', name, 'age:', age, 'other:', kw)
>>> person('Bob', 35, city='Beijing')输出:name: Bob age: 35 other: {'city': 'Beijing'}
注意:*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。
使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
14.切片操作
temp = list(range(100))
print(temp[0:3])
print(temp[::5])
15.迭代操作
from collections import Iterable
isinstance('AVC',Iterable)
16.列表生成式
例如生成[1*1,2*2,3*3,4*4.....]的列表
team = list(range(1,101))
ary = list(x*x for x in team)
print(ary)
17.双重循环排列
team_one = ['A','B','C']
team_two = ['D','E','F']
ary = list(a+b for a in team_one for b in team_two)
print(ary)
18.# 斐波拉契数列(除了前两位数,数列中任意一个数字都可以由前两位相加得到)
def demo(max):
n=0
a=0
b=1
while n< max:
print(b)
# a,b = b,a+b
temp = a
a= b
b= temp+a
n=n+1
return "END"
demo(6)
19.杨辉三角 用generator生成器
# 1
# 1 1
# 1 2 1
# 1 3 3 1
# 1 4 6 4 1
# 1 5 10 10 5 1
def gener(raw):
n,a=1,[1]
while n<=raw:
yield(a)
b = a[:]
for i in range(n-1):
a[i+1] = b[i]+b[i+1]
n+=1
a.append(1)
for num in gener(10):
print(num)
20.高阶函数(简单来说当一个函数a做为参数传入另一个函数b时,那么函数b就是一个高阶函数)
①map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回.
例如:def demo(x):
return x*x
ls = [1,2,3,4,5,6,7,8,9]
r = map(demo,ls)
list(r)
②reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算.
例如:from functools import reduce
r = [1,3,5,7,0]
def sum(x,y):
return x+y
s = reduce(sum,r)
得到的结果为13570 。
③filter()和map()类似,也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
例如:def filt():
return n%2 == 1
filter(filt,[1,2,3,4,5,6,7,8,9]),结果为[1,3,5,7,9]
例如:把一个序列中的空字符串删掉,可以这么写:
def not_empty(s): return s and s.strip()list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))# 结果: ['A', 'B', 'C']
注意到filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。
④排序:sorted()函数
例如:数字排序 sort([2,9,1,3,0,7]) #结果:[0,1,2,3,7,9]
例如:字符串排序 sorted(['bob', 'about', 'Zoo', 'Credit']) #结果:['Credit', 'Zoo', 'about', 'bob'] ,我们给sorted传入key函数,即可实现忽略大小写的排序,如sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower) #结果:['about', 'bob', 'Credit', 'Zoo'] ,加入 reverse=True即可反向排序。
21.闭包
当一个函数做为其外部函数的返回值时,并引用其外部函数定义的变量。这种程序结构即可称之为闭包。
例如:
def lazy_sum():
n = 1
def count():
s = n*2
return s
return count
上面的函数体即可成为闭包。但需要注意,在执行lazy_sum()函数时,返回是函数count,并且此函数并没有立即执行,是在调用返回函数时才执行,如f = lazy_sum(),当使用f()才回执行返回函数。
特别注意:返回闭包时,返回函数不要引用任何循环变量,或者后续会发生变化的变量。
例如:
def outfunc():
L = []
for i in range(1,4):
def infunc():
return i*i
L.append(infunc)
return L
L中存在的是3个闭包(此处用f1,f2,f3表示),在执行f1(),f2(),f3()后可能觉得结果是1,4,9,但结果却都是9。这就是因为返回的闭包并没有立即执行,而是在外部函数执行完后,才执行,而此时循环变量i值已经为3了。
22.匿名函数
关键字lambda表示匿名函数,冒号前面的x表示函数参数。
例如:list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])),同样,也可以把匿名函数作为返回值返回,比如:def build(x, y): return lambda: x * x + y * y
23.偏函数
functools.partial就是帮助我们创建一个偏函数的,作用就是把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
例如:
int("1000",base=16) 就可以把字符串1000用十六进制转换成对应的整数。但如果需要转换的比较多就比较麻烦。我们就可以用偏函数来通过固定一些参数创建一个新的函数,如下:int2 = functools.partial(int, base=2),这样用int2("1000")就默认转成二进制的整数了。当然也可以继续传入多个参数,如int2("10000",base=10),返回的还是十进制的10000。
记录学习也是分享.....

本博客皆为学习、分享、探讨为本,欢迎各位朋友评论、点赞、收藏、关注,一起加油!

【Python实践系列】Python学习与实践(一)相关推荐

  1. ASP.NET MVC实践系列9-filter原理与实践

    filter实际上是一个特性(attribute),它提供了一种向controller 或 action中添加某些任务的方法,当controller 或 action被调用时,会触发filter中定义 ...

  2. python进阶之学习笔记_干货 | Python进阶系列之学习笔记(四)

    目录 Python条件判断 Python循环语句 Python循环控制 迭代器与生成器 异常 一.Python 条件判断 如果某些条件满足,才能做某件事情:条件不满足时,则不能做,这就是所谓的判断. ...

  3. 55最佳实践系列:MongoDB最佳实践

    @郑昀汇总 创建日期:2012/9 Application Design: 1) 如果发现query没使用你预期的索引,请用hint强制使用指定索引 主站商品中心所使用的文档字段很多,各种索引建得也不 ...

  4. 干货 | Python进阶系列之学习笔记(二)

    目录 对象 字符串 一.对象 (1)什么是对象 在python中一切都是对象,每个对象都有三个属性分别是,(id)身份,就是在内存中的地址,类型(type),是int.字符.字典(dic).列表(li ...

  5. python进阶之学习笔记_干货 | Python进阶系列之学习笔记(二)

    目录 对象 字符串 一.对象 (1)什么是对象 在python中一切都是对象,每个对象都有三个属性分别是,(id)身份,就是在内存中的地址,类型(type),是int.字符.字典(dic).列表(li ...

  6. python基础系列之学习Python列表,只需这篇文章就够了

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

  7. Python育儿系列-python英文字母随机生成

    小孩子需要学习认识英文字母和大小写,这个程序是用来生成考核用的英语字母大小写的一个小程序 # -*- coding: utf-8 -*- # @Time : 2019-01-07 00:07 # @A ...

  8. Python育儿系列-python生成竖式运算

    竖式运算包括 100以内加减法 1000以内加减法(借位的.不借位的.进位的.不进位的),直接复制打印结果到word里面,调整好格式,小孩子就可以尽情的答题了. 建议使用横版打印,比较省纸 100 以 ...

  9. 最佳实践系列:前端代码标准和最佳实践

    最佳实践系列:前端代码标准 @窝窝商城前端(刘轶/李晨/徐利/穆尚)翻译于2012年 版本0.55 @郑昀校对 isobar的这个前端代码标准和最佳实践文档,涵盖了Web应用开发的方方面面,我们翻译了 ...

  10. Python图像处理库PIL -- 学习资源

    Resources 官方指南PIL Handbook(建议看英文,翻译) pil下载 安装中文指南 from the PythonWare PIL home page 推荐先看Python Imagi ...

最新文章

  1. ad20如何导入库_零基础小白自学Python,如何快速学会及掌握?
  2. JS每日一题: 小程序页面之间如何通信?
  3. AI时代的摩尔定律?黄氏定律预测AI性能将逐年翻倍
  4. NC7-买卖股票的最好时机
  5. 解决Eclipse中SVN版本比较中文乱码问题
  6. RabbitMq(十三)消息发送确认与回调机制
  7. 【Flink】Flink Association with remote system akka Connection refused
  8. File Operation
  9. 多线程中抛异常的这个面试题你会吗?
  10. 智能一代云平台(一):一些思考
  11. 在线预览word,excel,ppt
  12. Linux使echo命令输出结果带颜色
  13. 解决keep-live使用之后的问题
  14. C#山寨版本【天翼拨号客户端】---内含详细抓包,模拟数据---万事俱备,只欠东风。
  15. 苹果手机“无法验证应用”解决办法,免越狱无视软件掉签名
  16. 在腾讯,我们如何做 Code Review
  17. finalshell连接ubantu
  18. 机器学习(19)之支持向量回归机
  19. 源码编译系列之mpv播放器编译教程
  20. 防止登录成功后重复刷新页面跳回登录页面

热门文章

  1. Google+ Hangouts技术解密
  2. apax—apache扩展工具
  3. 混音机java通用版下载_Mixer混音台下载_Mixer混音台官方下载-太平洋下载中心
  4. Java 里 NonNull 和 NotNull 区别
  5. Neville算法MATLAB实现
  6. 6个C++游戏代码,Dev-C++都可以运行,可复制。
  7. Java控制台打印样式diy
  8. matlab的自学笔记
  9. c语言abr是什么错误类型,C语言真他妈难
  10. 烦人的Windows桌面水印——一键去除工具