1. python简介:解释性语言
安装python,注意路径加入path
python的解释器,cpython,Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
2.命令行模式和python交互模式
Python的交互模式和直接运行.py
文件有什么区别呢?
直接输入python
进入交互模式,相当于启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。
直接运行.py
文件相当于启动了Python解释器,然后一次性把.py
文件的源代码给执行了,你是没有机会以交互的方式输入源代码的。
用Python开发程序,完全可以一边在文本编辑器里写代码,一边开一个交互式命令窗口,在写代码的过程中,把部分代码粘到命令行去验证,事半功倍!前提是得有个27'的超大显示器!
shift+enter 在交互模式中,可以避免执行而进行换行
1).直接运行python文件
在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在.py文件的第一行加上一个特殊的注释:(使用的是python3.6)
#!/usr/bin/env python3
print('hello, world')
然后,通过命令给hello.py以执行权限:
$ chmod a+x hello.py
3.输入和输出
print()
print()
函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:
print(100+200)
300
Python解释器自动计算出结果300
input()
变量 = input()
python中的变量
4.python的基础
python的语法缩进,坚持使用4个空格的缩进,复制粘贴的代码必须检查缩进。
类型:整数,浮点数,字符串,布尔型,列表,字典
字符串:“”或‘’括起来的文本,注意转移字符/,转义字符\
可以转义很多字符,比如\n
表示换行,\t
表示制表符,字符\
本身也要转义,所以\\
表示的字符就是\
。Python还允许用r''
表示''
内部的字符串默认不转义
Python允许用'''...'''
的格式表示多行内容
字符串编码:
ASCII,Unicode,utf-8。注意编码方式的大小
坚持统一使用utf-8编码
encode()指定编码方式
decode()指定解码方式
格式化:占位符
你可能猜到了,%
运算符就是用来格式化字符串的。在字符串内部,%s
表示用字符串替换,%d
表示用整数替换,有几个%?
占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?
,括号可以省略。
常见的占位符有:
格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)
3-01
3.14
format()
另一种格式化字符串的方法是使用字符串的format()
方法,它会用传入的参数依次替换字符串内的占位符{0}
、{1}
……,不过这种方式写起来比%要麻烦得多:
'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'
变量和常量
变量的命名规则
常量默认大写字母标识,除法 / 表示精确的除法,//表示地板除,只取整数部分。%取余。
list和tuple
list = []
下标 (0,n-1),(-1,-n)
append()添加元素
insert(i,A),在下标i处插入A
pop(1,A),删除i处的元素A
元素赋值,list的元素可以是另一个list.
tuple() 元组 不可变
条件判断
if
elif
else
循环:
for i in ...
range(n) 生成0,n-1的list
while
break,continue的应用
dict和set
判断key是否在字典中
一是通过in
判断key是否存在:
>>> 'Thomas' in d
False
二是通过dict提供的get()
方法,如果key不存在,可以返回None
,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1) -1
注意:返回None
的时候Python的交互环境不显示结果。
要删除一个key,用pop(key)
方法,对应的value也会从dict中删除:
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
哈希函数在一个给定的键上执行,返回其在数组中的相对位置,使用一种哈希策略的数组叫做哈希表。
较小的装载因子,数组长度为素数都可以减小冲突 ,例子
def keyToIndexes(keys,n):
return list(map(lambda key : key%n,keys))
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:
set
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作,
在议不可变对象:
对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的