print('1+2=', 1+2) # 1+2= 3
\2. 多行输出使用三个引号和使用换行符\n
一致。
print '''Python
Python
Python'''
print "Python\nPython\nPython"
8.序列
序列是一组有顺序的元素的集合,可以包含一个或多个元素,也可以没有任何元素。
\1. 序列分为可变序列 List 和不可变序列 tuple,range。
\2. 序列的通用操作(s 和 t 表示同类型的序列;n,i,j,k 为整数;x 为任意类型)。
x in s :若序列s中包含x元素则返回True,否则返回False。
x not in s: 若序列s中不包含x元素则返回True,否则返回False。
s = [1,2,[3,4],'g']
x = 'g'
a = [3,4]
b = 5
print(x in s,a in s,b in s,b not in s)
s + t:s和t拼接在一起。
s = [1,2,[3,4],'g']
t = ['5',6]
w = s + t
print(w)
sn(或ns)**:将 s 重复 n 次,当 n 小于 0,s*n 为空序列。
s = ['a',3,4]
n = 3
w = s*n
print(w)
s[i]:s中下标为i的元素(下标从0开始)。
s[i:j]:s中下标从i到j-1的元素集合(下标从0开始)。
s[i:j:k]:s中下标从i到j-1且间隔为K的元素集合(下标从0开始)。
s = ['a',1,2,3,4,5,6,7,8,9]
print(s(0),s(2))
w1 = s[1:3]
t1 = s[1:-1]
print(w1,t1)
w2 = s[1:7:2]
t2 = s[::-1]
print(w2,t2)
len(s):s中元素个数。
min(s):s中最小的元素。
max(s):s中最大的元素。
s = ['a',1,2,3,4]
print(len(s),min(s),max(s))
s.index(x[,i[,j]]):s中首次出现x的下标(i,j为下标范围限制)。
s.count(x):s中x的总个数。
s = [1,2,3,4,1,2,3,1,2,9]
print(s.index(1),s.index(2,2),s.index(2,2,10),s.count(1))
\3. 可变列表 List(s为可变序列,t为可迭代对象;n,i,j,k为整数;x为任意类型)。
s.append(x):在s尾部添加x,相当于s[len(s):len(s)]。
s.insert(i,x): 将s中编号为i的位置插入x,相当于s[i:i] = [x]。
s.pop([i]):返回编号为i的元素,并将其从s中移除,默认为最后一个元素
s = [0,1,2,3,4,5]
s.append(7) #append()总是把新元素添加到s的尾部
print s # [0, 1, 2, 3, 4, 5, 7]
s.insert(0,-1) #insert()接受两个参数,第一个是索引,第二个是元素
print s # [-1, 0, 1, 2, 3, 4, 5, 7]
s.insert(-1,6) #insert(-1)是最后一个元素之前,即倒数第二个元素,因为insert()前插
print s # [-1, 0, 1, 2, 3, 4, 5, 6, 7]
s.pop() #pop()方法总是删掉最后一个元素
print s # [-1, 0, 1, 2, 3, 4, 5, 6]
s.pop(0) #参数为索引
print s # [0, 1, 2, 3, 4, 5, 6]
s[6]=7 #对 s 中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素
print s # [0, 1, 2, 3, 4, 5, 7]
s[0],s[-1]=s[-1],s[0] #第一与最后位置调换
print s # [7, 1, 2, 3, 4, 5, 0]
\4. 不可变的元组 Tuple:字符串是一种特殊的元组,没有 append()方法,也没有insert()和pop()方法,也不能赋值。
\5. range 类型表示一个不可变的数字序列,通常用于在for循环中循环特定次数。
9.相等比较
\1. ==
和 is
是不一样的,== 比较的是值,is 比较的是引用。
x = [1, 2, 3]
y = x
z = [1, 2, 3]
print(x == y) #True
print(x == z) #True
print(x is y) #True
print(x is z) #False
10.选择
\1. 语法格式
if 条件1:
statement
if 条件2:
statement
\2. 三元运算符
x, y = 4, 3
if x < y:
result = x
else
result = y
print result
# 等同于
result = x if x < y else y
print result
11.循环
\1. while 循环,不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。
while 条件
statement
\2. for循环,依次把list或tuple的每个元素迭代出来。
for 元素 in 序列:
statement
3.break,用于推出当层循环。
num = 1
while num <6:
print(num)
num+=1
break
print("end")
\4. continue,用于退出当前循环,继续下一次循环。
num = 1
while num <6:
print(num)
num+=1
continue
print("end")
5.range()的用法。
range(1,5) #代表从1到5(不包含5) [1, 2, 3, 4]
range(1,5,2) #代表从1到5,间隔2(不包含5) [1, 3]
range(5) #代表从0到5(不包含5) [0, 1, 2, 3, 4]
6.迭代器:它为类序列对象提供了一个类序列的接口。迭代非序列集合(例如映射和文件)时, 可以创建更简洁可读的代码。
myTuple = (123, 'xyz', 45.67)
i = iter(myTuple)
print i.next() #123
print i.next() #xyz
print i.next() #45.67
i.next() #报错
12. 字典
字典类似于列表,但能将不同的信息关联起来。
\1. 字典的元素没有顺序。是按 key 进行查找,字典中的 key 不能重复。
\2. 一个简单的字典,包含学生姓名和年龄的字典。
Students = {'name':'Tom','age':14}
\3. 学生姓名称为 key,年龄称为 value。字典通过 key 来查找 value。
\4. 花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
\5. 由于dict也是集合,len()函数可以计算任意集合的大小。
print len(students) # 1
6. 在字典中添加一个新元素。
students = {'Tom':12,'Jack':13}
print students # {'Tom':12,'Jack':13}
students['lilei']=11
print students # {'Tom':12,'Jack':13,'lilei':11}
\7. 循环调用。
for key in students:
print students[key]
# 输出结果
12
13
11
\8. 字典的常用方法
print d.keys() # 返回d所有的键
print d.values() # 返回d所有的值
print d.items() # 返回d所有的元素(键值对)
d.clear() # 清空d,dict变为{}
del d[‘xxx’] # 删除 d 的‘xxx’元素
13. 集合
集合使用花括号将元素之间用逗号隔开即可。集合的输出里不会出现相同的元素。
\1. 创建一个集合。
s = set(['A', 'B', 'C'])
print s #set(['A', 'C', 'B'])
\2. 添加、删除。
s.add('D')
print s #set(['A', 'C', 'B', 'D'])
s.add('D') # 已存在不会报错
s.remove('D')
print s #set(['A', 'C', 'B'])
s.remove('D') # 报错,需要先判断
14. 函数
函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。
\1. 定义一个函数。使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
def hello():
print "hello"
hello() # 调用函数,打印出hello
2.没有return语句,函数执行完毕后也会返回结果,只是结果为 None。
\3. 函数返回多个值。
import math
def move(x, y, step, angle):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
x, y = move(100, 100, 60, math.pi / 6)
print x, y # 151.961524227 70.0
r = move(100, 100, 60, math.pi / 6)
print r # (151.96152422706632, 70.0)
这只是一种假象,Python 函数返回的仍然是单一值,是一个tuple。
\4. 递归函数:函数内部调用自身。
做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。
别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。
我先来介绍一下这些东西怎么用,文末抱走。
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
(4)200多本电子书
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
(5)Python知识点汇总
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
(6)其他资料
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!