基础知识
字符串
.py
文件申明方式
#!/usr/bin/env python3
# coding=utf-8
输入输出 print()
、input()
,注意input()
返回 str
类型,如果需要数字类型,可以将返回值 int()
print('section-1')
name = input('your name:')
print('welcome',name)
代码块 :
num = 4
if num >= 3:
print(num)
else:
print(0)
字符串
-
r''
表示不转义
print('\\\t\\')
print(r'\\\t\\')
-
'''
表示多行文本
布尔值 True
、False
注意大小写
运算符 and
、or
、not
None
表示空值
python的字符串类型为str
- 内存中以Unicode方式存放,一个字符对应多个字节,保存到硬盘或传输时需要把
str
转换为bytes
单位,python 对bytes
类型的数据用带前缀b
单引号或双引号表示
x = b'ABC'
- 注意
b'ABC'
与'ABC'
不同,前面是str
类型,bytes
每个字符占用一个字节 -
str
可以通过encode
转为bytes
'ABC'.encode('ascii')
# b'ABC'
保存有中文字符的python文件时,文件前面带上 # -*- coding: utf-8 -*-
python 内部ASCII互相转换的方法是ord
chr
ord('A')
# 65
chr(65)
# 'A'
len 返回字符串长度
len('ABC')
len('中文')
格式化字符串,用%表示,%s
表示字符,%f
表示浮点数,%d
表示整数,%x
十六进制整数。如果不确定什么类型可以统一用%s
转换为字符串
print('Hello, %s' % 'world')
# 'Hello, world'
print('Hi, %s, you have $%d.' % ('Michael', 1000000))
# 'Hi, Michael, you have $1000000.'
print('%2d-%02d' % (3, 1))
# ' 3-01'
print('%.2f' % 3.1415926)
# '3.14'
整数相除得到浮点数,如果希望结果为整数可以用 //
(地板除),取余用 %
,返回整数
print(9/3)
# 3.0
print(5/3)
# 1.6666666666666667
print(5//3)
# 1
print(5%3)
# 2
python浮点数没有大小限制,超出一定范围直接表示为 inf
list与tuple
list 常见方法
-
append
从后面追加 -
pop
从后面删除,可以带index参数,表示删除指定位置元素 -
insert
指定位置添加元素
arr=[1,2,4]
arr[4]
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#IndexError: list index out of range
arr.append('dd')
arr
# [1, 2, 4, 'dd']
arr.insert(1,'ee')
arr
# [1, 'ee', 2, 4, 'dd']
arr.pop()
# 'dd'
arr
# [1, 'ee', 2, 4]
arr.pop(2)
# 2
arr
# [1, 'ee', 4]
tuple 元祖,用小括号表示,与list类似,不过一旦常见就不能更改,所以没有append
,insert
方法,但其他调用与list一样。这样保证代码安全,所以能用tuple的就不要用list
a=(1,2,3)
a
# (1, 2, 3)
# 定义空tuple
b=()
b
# ()
# 定义只有一个元素的元祖需要在后面加上逗号
c=(1,)
c
# (1,)
d=(1)
d
# 1
可以申明可变的 tuple,注意以下用法
t = ('a', 'b', ['A', 'B'])
t[2][0]='C'
t
# ('a', 'b', ['C', 'B'])
条件判断
语句用 if
、elif
、else
,用:
表示代码块
循环
第一种 for x in ...
# 打印从0开始到小于11的整数和
sum = 0
for x in range(11):
sum = sum + x
print(sum)
## 大
- range(5):表示从0开始到小于5的整数list,
[0, 1, 2, 3, 4]
- range(1,5): 表示从1开始到小于5的整数list,
[1, 2, 3, 4]
- range(1,5,2):最后一位表示每间隔2取一个数,
[1, 3]
第二种 while
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
break
退出循环
continue
退出当前循环
字典(dict
)与set
dict
,查找速度极快用大括号表示
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d['Michael']
## 95
d['Jack']
## 没找到key会报错,也可以通过get方法
d.get('Jack')
# 返回 None,也可以自定义返回结果
d.get('Jack', -1)
# -1
- 删除 key 用
pop('Bob')
- 添加 key 可以直接赋值
- 可以通过
in
判断key是否存在
d['Tom']=11
d
# {'Bob': 75, 'Tom': 11, 'Tracy': 85, 'Michael': 95}
d.pop('Bob')
d
# {'Tom': 11, 'Tracy': 85, 'Michael': 95}
'ABC' in d
# False
- 因为 dict 的value是通过key hash计算出来的,所以key必须是不可变的,及可以为整数和字符串类型
set
与 dict
类似,只是没有value,而是key的集合,所以没有重复的key,注意 set
是无序的
- 通过传入一个
list
进行创建,重复的元素会被过滤掉
s=set([1,2,3])
s
# {1, 2, 3}
e=set([1,1,2])
e
# {1, 2}
- 通过
add
追加,remove
删除元素
s.add(4)
s
# {1, 2, 3, 4}
s.remove(4)
s
# {1, 2, 3}
- 可以通过
&
、|
取数学上的并集和交集
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
s1 & s2
# {2, 3}
s1 | s2
# {1, 2, 3, 4}