基础知识(一)
1.编码
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。
2.保留字
import keyword
keyword.kwlist # 查看保留字
3.输出print 默认输出是换行的,如果要实现不换行需要在变量末尾加上end="":
print(x, end="")
4.import与from...import在 python 用 import 或者 from...import 来导入相应的模块:
将整个模块导入:
import name_module
从整个模块中导入函数:
from name_module import func1, func2
5.多个变量赋值
a, b, c = 1, 2, 'hello'
6.标准数据类型
Python3 有6个标准数据类型:
Number, String, List, Tuple, Sets, Dictionary
用 isinstance来判断 Number类型(type()):
>>> a = 120
>>> isinstance(a, int)
True
1) List[ ]
列表中元素的类型可以不相同,它支持数字、字符串,甚至可以包含列表(嵌套)
list1 = ['asd', 234, ['fgh']]
list1[0] = 't' # 修改列表
print(list1[:]) # 打印全部列表
print(list1[2][0]) # 打印 fgh
列表元素可以改变
2) Tuple()
元组与列表相似,但其元素不可以更改,且是()形式。
tuple1 = ('asd', 234, ('fgh'))
print(tuple1[:]) # 打印全部元组
print(tuple1[2][0]) # 打印 fgh
构造元组
tuple2 = (20,) # 一个元素,需要在元素后添加逗号
3) String、List 和 Tuple 都属于 sequence(序列)
4) Set{ , , , }
集合是一个无序、不重合的序列。
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
set1 = set() # 创建一个空集合,不能用 set{}
5) Dictionary{ : , : , : }
列表是有序的对象集合,而字典是无序的对象集合。字典中的元素可以通过键来存取,而不是通过偏移。
dic = {'Tom': 1, 'Jim' : 2, 3 : 'Mary'}
dic[2] = 'hello'
print(dic['Tom']) # 输出键为'Tom'的值
print(dic.keys()) # 输出所有键
print(dic.values()) # 输出所有值
字典是一种映射类型,它的元素是键值对。创建空字典用:{ }
基础知识(二)
1.String
1)字符串的更新
str1 = 'Hello world'
print(str1[:6] + 'Python')
2)字符串格式化
print("My name is%s, and I'm is%dyears old" %('xiaoming',10))
3)转义字符
如:\n ——换行
4)字符串内建函数
count(str, beg= 0,end=len(string))
返回 str 在 string 中出现的次数,beg 和 end 限定了范围。
split(str="abc", num=string.count(str))
以 abc 为届,分割字符串。
2.List
1)列表嵌套
2)列表方法
list.sort([func]) —— 对列表进行排序
list.copy() —— 对列表进行复制
3.Dictionary
1)键必须是唯一的,但值可以不是。键不可变,所以可以用数字、字符串、元组充当,但列表不可以。
2)字典内置函数和方法
基础知识(三)
1.斐波那契数列
# Fibonacci series: 斐波纳契数列
# 两个元素的总和确定了下一个数
# 1, 1, 2, 3, 5, 8, 13...
a, b = 0, 1
while b < 1000:
print(b, end=',')
a, b = b, a+b
关键字 end 可以用于将结果输出到同一行,也可以在输出的末尾添加自定义的符号。
2.条件控制语句
1)if;2)if 嵌套
3.循环语句
1)while循环
2)for 语句
for in :
if :
break # 跳出当前循环体
else:
3)range() 函数
for i in range(1, 9, 2): # 指定起止位置,并设置步长
print(i)
4)continue 语句
用于跳过当前循环块中的剩余语句,继续进行下一个循环。
>>> for i in 'hello world':
if i == 'r':
continue
print(i, end='')
hello wold
5)pass 语句
pass 是空语句,保持程序结构的完整性。
4.迭代器(iteration)
访问结合元素的一种方式,可以记住遍历的位置的对象。字符串、列表或元组对象都可以用于创建 。
>>> list1 = [1, 2, 3, 4]
>>> it = iter(list1) # 创建迭代器 iter()
>>> print(next(it)) # 输出迭代器的下一个内容
1
>>> print(next(it))
2
>>> print(next(it))
3
5.生成器
使用了 yield 函数的被称为生成器(generator)。生成器是返回迭代器的函数,只能用于迭代操作,简单的理解:生成器就是迭代器。
在调用生成器的运算过程中,遇到yield时,函数会暂停,并保存当前信息,返回 yield 的值。并在下一次执行 next() 方法时,从当前位置继续执行。
使用 yield 实现斐波那契数列:
import sys
def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()
6.函数
1)可更改(mutable)与不可更改(immutable)对象
在 python 中,Strings,Tuples, 和 Numbers 是不可更改的对象,而 List,Dictionary 等则是可以修改的对象。不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了
2)匿名函数 lambda
不必用 def 的标准形式来定义函数。
sum = lambda arg1, arg2 :arg1 +arg2
3)变量作用域
程序中的变量,并不是在哪个位置都可以访问的,访问权限取决于这个变量在哪里赋值。