(一) 数据类型和变量
整数
python可以处理任意大整数,负整数
num1 = 123
num2 = -123
浮点数
小数,可能存在四舍五入的误差
floatNum = 123.123
字符串
以单引号'
或双引号"
括起来的任意文本
转义字符
\n
表示换行,\t
表示制表符,字符\本身也要转义,所以\表示的字符就是\
print('my name is \'luna\'')
如果有很多字符需要转义,简化允许使用 r' '
,内部的字符串默认不转义
str1 = r'\\\t\\'
如果字符串有很多换行,\n
多了不好阅读,简化可使用''' '''
表示多行内容,多行默认不转义r''' '''
print(''' l1
...l2
...l3''')
布尔值
布尔值只有 True
、False
(注意大小写)
a = True
b = False
print(a and b)
print(a or b)
print(not a)
空值
空值用None
表示,不能理解为0,None
为一个特殊的空值
变量
大小写英文、数字和_
的组合,且不能以数字开头
同一个变量可以反复赋值,且可以是不同类型
a = 1
t_01 = 't01'
Check = True
常量
不能变得变量,π为常量
PI = 3.14
整数除法有两种
#整数恰好整除,结果也是浮点数
print(9/3)
print(10/3)
# 两个整数的除法仍然是整数
print(10//3)
(二)字符串和编码
字符编码
ASCII
大小写英文字母、数字和一些符号
Unicode
Unicode把所有语言都统一到一套编码里,解决了乱码问题。(两个字节表示一个字符)
UTF-8
UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。
字符串
Python 3版本中,字符串是以Unicode编码。
print('中文 和 English')
对于单个字符编码,提供了ord()
函数获取字符的整数表示,chr()
函数吧编码转换成对应的字符:
print(ord('A'))
print(ord('我'))
print(ord(66))
Python的字符串类型是str
,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
计算字符字节数:len()
# -*- coding: utf-8 -*-
str_a = 'abc'
bytes_a = b'abc'
print(len(str_a))
print(len(bytes_a))
格式化
字符串内部,%s
表示用字符串替换,%d
表示用整数替换,有几个%?
占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?
,括号可以省略。
a1 = 10
b1 = 20
print('a1+b1=%d'%(a1+b1))
a2 = 1.2
b2 = 2.1
print("a2+b2=%f"%(a2+b2))
s1 = 'hello'
s2 = 'python'
print('%s,I\'m %s' %(s1,s2))
# format格式化
name = 'luna'
age = 17
grade = 98
print('哇,{0}今年{1}岁,她的英语成绩是{2}%'.format(name,age,grade))
(三)列表list、元组tuple
list
是一种有序的集合,可以随时添加和删除其中的元素。
students = ['a','b','c']
print(students)
print(len(students))
# 访问第一个元素
print(students[0])
# 访问最后一个元素
print(students[-1])
# 以此类推 获取倒数第二个
print(students[-2])
# 添加元素
students.append('d')
# 指定位置插入元素、
students.insert(1,'K')
print(students)
# 删除列表末尾的元素
students.pop()
print(students)
# 指定位置删除元素
students.pop(1)
print(students)
# 替换指定位置的元素
students[1] = 'c'
print(students)
有序列表叫元组:tuple
。tuple
和list
非常类似,但是tuple
一旦初始化就不能修改。定义一个tuple
时,在定义的时候,tuple
的元素就必须被确定下来。
# 元组
tups = ('bob','mok','lvf')
print(tups[0])
# 空元组
tup1 = ()
# 只有一个元素
tup2 = (1,)
(四)条件判断
如果if
语句判断是True
,就把缩进的两行print
语句执行了,否则,什么也不做。
给if
添加一个else
语句,意思是,如果if
判断是False
,不要执行if的内容,去把else
执行了
# if ...
age = 20
if age >= 18:
print('你的年龄是:',age)
print('成年')
# if ... else
if age >= 18:
print('成年')
else:
print('未成年')
# if...elif...else
if age >= 18:
print('成年')
elif age < 18:
print('未成年')
else:
print('错误')
age1 = int(input('age:'))
if age1 >= 18:
print('成年')
else:
print('未成年')
(五)循环
循环有两种,for...in
循环、while
循环
for...in
循环,依次把list
或tuple
中的每个元素迭代出来,for x in ...
循环就是把每个元素代入变量x,然后执行缩进块的语句。
name = ['as','you','me']
for n in name:
print(n)
# Python提供一个range()函数,可以生成一个整数序列
sum = 0
for x in list(range(101)):
sum = sum + x
print(sum)
while
循环,只要条件满足,就不断循环,条件不满足时退出循环
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
sum = 0
active = True
while active:
for x in range(11):
sum = sum + x
print(sum)
active = False
break
语句退出循环
# 循环打印 当等于12时 提前结束
for x in list(range(20)):
if x > 12:
break
print(x)
print('END')
continue
语句,跳过当前的这次循环,直接开始下一次循环。
# 循环打印1-100的偶数
for x in list(range(101)):
if x != 0 and x%2 == 0:
print(x)
else:
continue
(六) 字典dict 、set(键值对集合)
字典dict
字典dict
:使用键-值(key-value)
存储,具有极快的查找速度。
dict
内部存放的顺序和key
放入的顺序是没有关系,dict的key
必须是不可变对象
dict
特点(用空间来换取时间):
1、查找和插入的速度极快,不会随着key
的增加而变慢
2、需要占用大量的内存,内存浪费多。
list特点:
1、查找和插入的时间随着元素的增加而增加;
2、占用空间小,浪费内存很少
people = {'luna':95,'koko':90,'tio':80}
# 如果key不存在 返回false
if 'koko' in people:
print(people)
# 通过get()判断key是否存在
if people.get('luna') != None:
print(people.get('luna'))
# 删除key
if people.get('luna') != None:
people.pop('luna')
print(people)
# 添加
people['momo'] = 65
print(people)
set
一组key
的集合,不存储value
。由于key
不能重复,所以在set
中,没有重复的key
。
# key不重复 无序
sets = set([1,2,3,4,5,3,2])
print(sets)
#添加元素
sets.add(6)
sets.add(5)
print(sets)
# 删除元素
sets.remove(1)
print(sets)
# 无序和无重复元素的集合,可做交集、并集等操作
s1 = set([1,2,3])
s2 = set([2,4,5])
print(s1&s2) # 交集
print(s1|s2) # 并集