p2 p3 区别
-
p2: 8/5=1
p3: 8/5=1.6 8//5 = 1
输入输出
myinput = input("please input your name:")
print(myinput)
#转义字符的用法 r---原来的 b--字节 u--unicode
string_1 = "c:\ndf"
string_2 = r"c:\ndf\fasd\fasd\asfasd\asd"
'''
格式化输出
%s ---------- string
%d (%i) ----------- int
%f -------------- 小数
'''
print('Name:%s,Age:%i,Job:%s' %(name,age,job))
string
str = 'hello'
s = str[ : :2] #从头到结束,间隔为2 s = 'hlo'
s.split('') #以''分割
s.strip() #去除两端的空格
s.append('ad') #在末尾追加
s.insert(2,'asdasd') #在索引 2 的地方插入
s.count('asd') #计算元素的次数
s.remove('asdasd') #删除指定元素
s.pop #删除最后一个
s.sort() #排序
s.reverse() #反转
引号的区别
string_3 = "ffasf\nfasdds"
string_4 = 'asdfasd\nasdfasd'
string_5 = '''sfasdff
fasdf
dasdfasd'''
'''
三引号也可以作为一种注释存在
'''
强制类型转换
a = 100
b = " asfas"
print(str(a) + b)
for 语句
- 正常情况
sum = 0
for eve in range(1, 101): # 默认 range(1,101,1) 从 1到101,间距1
sum = sum + eve
print(sum)
- 特殊情况
while(for):
break #跳出当前一层的循环
else: #当循环中break退出时,才会执行else的内容
print()
内建函数
range : 生成范围内的int数 range(start , end , step)
id : 查看变量的内存地址
dir : 显示变量的可用的方法
is type : 类型判断 type('asd') is str
if 用法
猜数字
answer = 4
print("welcome to guess number game!")
while True:
myinput = int(input("please input one number:"))
if myinput == answer:
print("right!")
break
elif myinput > answer:
print("bigger!")
else:
print("smaller!")
集合
1)set
set 使用 [ ] 括起
- 无序 不可重复
```python
a = [1, 2, 3, 4, 5, 6, 1]
print(set(a)) #最后一个“1"被去重
2. 初始化set:set({一个参数}) [],() 都可以
```python
print(set({1, 2, 3, 4, 5}))
- 增加(update) 和 删除(remove)
set_date = set(['asd','as','a','b'])
set_date.update('he')
set_date.remove('a')
print(set_date)
2) tuple
()括起
- 一旦定义,不可修改 检索速度特别快
a = (1,2,3,4,(2,4,'s'),['sd','sd','fs'])
print(a)
- 但使用切片,可以修改
a = (1,2,3,4,5,6)
a = (21,34.23) + a[2:]
print(a)
3) list
[]扩起
- 有序 可重复,与 set 不同
a = [1,2,3,4,1,2,3,41,1,1,1,1]
print(a)
- 可进行增删改查,与 tuple不同
a[1] = "saasd" #改
a.append("sdsd") #末尾增加
a.remove('sdsd') #删除,参数为要删除的内容
del a[1] #删除,参数为要删除的位置
print(a)
- 其他功能函数
a = [1,2,3,4,5,6,7,4,3]
print(max(a))
print(min(a))
print(len(a))
a.sort() #默认排序
a.insert(1,'a') #插入 list.insert(index,object)
a.index('a') #索引 查找某个内容的索引值
print(a)
4) dist
K-V对的无序集合 {}扩起
a = {"1":"ad",2:"sads","time":"fq"} #2组KV对, "1"->"ad" , 2->”sads
print(a["1"])
print(a[2])
- 增加(修改)一组数据
a[3] = "sadasd"
a['adf'] = 13434
print(a)
- 删除一组数据
del a[3] #通过 key 删除一组数据
a.clear() #清空
print(a)
- 例子: 元素去重
a = [1,2,3,4,5,6,7,1,2,1,1,1]
print(a)
方法一 set()去重
print(set(a))
方法二 新建数组去重
b = []
for i in a:
if i not in b:
b.append(i)
print(b)
def 方法(函数)
def name(argc):
- 无返回值
def print_data(input_data):
print(input_data)
str1 = 'fq is best one'
print_data(str1)
- 有一个返回值
def sum_data(num1,num2):
return num1 + num2
a = 100
b = 200
print_data(sum_data(a,b))
- 多个返回值
def test():
a = 'sda'
b = 1
c = (1,3,"sd")
return [a,b,c]
print(test())
print(test()[2])
字符串进阶操作
1.replace
替换 : 不改变源字符串,返回替换后的字符串
a = 'asdfsaf'
b = a.replace("asd",'12')
print(b)
2. split
切割 : 不改变源字符串,返回替换后的字符串
a = 'abcabcabc'
b = a.split('c')
print(b)
文档操作
open函数:
常用参数:
open( path , mode , encoding)
其中:
pah: 为文件的路径, 如 'C:/BT/text.txt'。若直接为文件名,则是python源文件所在的目录下
mode: r ----读 w ---- 覆盖写 a ------追加写
w+ , r+ , a+ ----------读写模式打开
rb ----- 二进制(字节)读 wb ------- 二进制(字节)覆盖写 ab ------- 二进制(字节)追加写
wb+ ,rb+, ab+ -------- 二进制(字节)读写模式
encoding : 编码格式 GBK 或 utf-8
eg:
open('E:/' + data_title + '.html', "w",encoding='utf-8')
读取
'''
read() ------- 将文件的内容全部放入一个string中
readline() ----------读取文件中的一行
readlines() ----------对文件按行读取,将每一行的数据作为一个string元素放入list中
'''
f = open("test.txt")
# print(f.read())
#print(f.readline())
print(f.readlines())
f.close()
写入
'''
write: 常规写入
writelines: 将参数作为list集合写入
'''
#f = open("test.txt",'w') #覆盖写入
f = open("test.txt",'a') #追加写入
f.write('asdfa')
f.writelines(['[fadadaf','\nasdfadasd'])
f.close()
使用 with 可以不用 f.close()
with open("test.txt") as f:
print(f.read())
decode 和 encoode
decode ---- 字节 ---》 目标编码(utf-8 gbk)
encode ---- 现有编码(utf-8 gbk) ----》 字节
a = '你好呀'
print(a.encode('utf-8')) #将 string 转换为 字节
print(a.encode('utf-8').decode('utf-8')) #将 string 转换为 字节 在转换为 string