Python 语言基础
1.Python中的缩进
Python中,以# 开头的语句是注释,解释器会忽略注释,其他每一行都是一个语句,当语句以冒号结尾时,缩进的语句视为代码块.
# print absolute value of an integer;
a = 100
if a >=0:
print(a)
else:
print(-a)
缩进强迫我们写出格式化代码,但没有固定缩进是几个空格还是Tab.按照约定俗称的惯例,应该时政坚持使用4个空格. l另外,缩进会使黏贴"失效",黏贴过去的代码必须重新检查缩进是否正确.
2.Python中的数据类型和变量
2.1 整数类型
Python可以处理任意大小的整数,当然包括负整数,在程序中的标识方法和数学上的写法一样.
a = 1
b = 100
c = -800
对于很大的数,例如 100000000000,python允许在数字中间以_分割
a = 1_000_0000
b = 0xa1b2_c3d4
2.2 浮点数
浮点数也就是小数,称为浮点数,是一位按照科学计数法标识的时候,一个浮点数的小数点位置是可变的.
# 小数点位置是可变的
1.23x10*9和12.3x10*8
# 对于很大或者很小的浮点数,必须使用科学计数法标识
1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5
2.3 字符串
字符串使用单引号' 或者双引号""括起来的任意文本,特殊符号使用\来标识. 转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\
'I\'m \"OK\"!'
如果字符串内部有很多换行,用\n写在一行不便阅读,为了简化,Python允许使用... 的格式标识多行内容
print(```line1
...line2
...line3```)
2.4 布尔值
一个布尔值只有True False 两种值,可移直接使用True、False表示布尔值,也可以通过布尔运算计算出来
True
False
3 >2
布尔值可以用and(与) or(或) 和not(非)运算
# and 运算,只有所有都为True,and运算才为True
5>3 and 3>1
#or运算是或运算,只要其中有一个为True
5>3 or 1>3
#not运算是非运算,它是一个单目运算符,把True变成Fals
not 1 > 2 # True
2.5 空值
空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0 是有意义的,而None是一个特殊的空值.
2.6 变量
变量名必须是大小写英文、数字和_的组合,切不能用数字开通
a = 1
t_007 = 'T800'
2.8 常量
Python中,通常用全部大写的变量名表示常量
PI = 3.1415926
3.字符串和编码
3.1 Python的字符串
# ord()函数获取字符串的整数标识,chr()函数把编码转换为对应的字符
ord('A') # 65
ord('中') # 20013
chr(66) # 'B'
chr(25991) # '文'
以Unicode表示的str通过encode()方法可以编码为指定的bytes
'ABC'.encode('ascii') # b'ABC'
'中文'.encode('utf-8') # b'\xe4\xb8\xad\xe6\x96\x87'
从网络或磁盘上读取了字节流,那么读到的数据就是bytes,要把bytes变为str,就需要decode()方法
b'ABC'.decode('ascii') # 'ABC'
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') # '中文'
len()函数计算str的字符数,换成bytes就计算字节数
len(b`ABC`) # 3
len('中文') # 3
3.2 字符串格式化
Python中的格式化方式和C语言是一致的,用%实现
print('Hello ,%s % world')
print('hi,%s ,you hava $%d % (jay,100000)')
3.2.1 字符串格式化常见占位符
| 占位符 | 替换内容 |
|---|---|
| %d | 整数 |
| %f | 浮点数 |
| %s | 字符串 |
| %x | 十六进制整数 |
3.2.2 格式化整数和浮点数还可以指定是否补0 和整数与小数的位数
print('%2d-%02d' % (3, 1))
# 3-01 前边有一位空着
print('%.2f' % 3.1415926)
#3.14
3.3.3 f-string
r = 2.5
s = 3.14*r**2
print(f'The area of a circle with radius {r} is {s:.2f}')
# The area of a circle with radius 2.5 is 19.62
4.list 和tuple
4.1 list
Pyhotn内置的一种数据类型是列表list,list 是一种有序的集合,可以随时添加和删除其中的元素.
-
list 声明
classmates = ['Michael','Bob','Tracy'] -
使用len()函数可以获得list元素个数
len(classmates) -
list元素访问 使用索引访问元素从0开始,除了计算索引位置之外,还可以用-1做索引,直接获取最后一个元素
classmates[0] classmates[-1] -
使用append()向list中添加元素
classmate.append('Adam') -
使用insert()将元素插入到指定索引的位置
classmate.insert(1,'Jack') -
使用pop()方法删除掉最后一个元素
classmates.pop() -
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
classmates[1] = 'S' -
list里面的元素的数据类型也可以不同
L = ['Apple',1234,True] -
list中的元素也可以是另一个list
s = ['python', 'java', ['asp', 'php'], 'scheme']
4.2 tuple(元组)
元组是另一种有序列表,和list非常类似,但tuple一旦初始化就不能修改. tuple获取元素的方法是一样的,可以使用索引,但不能再赋值为另外的元素.
-
声明元组
classmates = ('1','2','3') -
定义一个空的元组
t=() -
声明只有一个元素的tuple
t = (1,)
5.条件判断
age = 3
if age >=18:
print('adult')
elif age >=6:
print('teenager')
else:
print('kid')
6. 循环
Python 中有两种循环,一种是for...in 依次把list或tuple中的每个元素迭代出来.
range()函数可以生成一个整数序列
names = ['a','b','c']
for name in namse:
print(name)
# 生成0 - 99的整数序列
for x in range(100):
print(x)
while循环
sum = 0
n = 99
while n > 0:
sum = sum +n
n = n-2
print(su)
7.dict和set
7.1 Python内置了字典:dict的支持,在其他语言中成为map,使用键值对(key-value)存储,具有极快的查找速度
-
声明一个字典
d = {'Michael':95,'Bob':75,'Tracy':85} # 或者 d = dict(name='Bob', age=20, score=88) # 访问字典元素 d['Michael'] -
把数据放入dict的方法,除了初始化时指定外,还可以通过key方式
d['Adam'] = 67 -
使用in 判断key是否存在
'Thomas' in d -
要删除一个key,用pop(key)方法,对应的value也会从dict中删除
d.pop('Bob')
7.2 set
set和dict类似,也是一组key的集合,但不存储value,由于key不能重复,所以在set中没有重复的ky
-
创建一个set需要提供一个list作为输入集合
s = set([1,3,5]) -
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
s.add(6) -
set可以看成数学意义上的无序和无重复的集合,因此可以做数学意义上的交集、并集等操作
s1 = set[1,2,3] s2 = set[2,3,4] s1 & s2 # {2,3} s1 | s2 # {1,2,3,4}