Python3学习笔记(1)

此篇是作者(一个萌新)在学习Python3的一点回顾和总结(适合有java或c基础的读者观看)

书写

Python和java以及c在代码书写格式上的区别

  • Python不需要在代码末尾加分号
  • Python不需要在方法后面加大括号

注释

  • 单行注释:以井号开头,可写在某行代码后面,也可单独一行
  • 多行注释:以三个连续单引号或双引号开始和结束

变量

在python中,变量是没有类型的,类型是属于对象的

a = ['a','h','j','s']
a = 2123
  • 数字类型 Number
    • 整数:等同于 int
    • 浮点数:包括float和double
    • 复数:一个由虚部和实部构成的数字,虚部用 j/J 表示
    • 布尔值:True和False,可以直接跟数字操作,在某些时候非零数可以当做True,但 False 为0,True 为1
  • 字符串类型 String
    • 单引号(‘i love programming’)
    • 双引号(“i love programming”)
    • 三引号(’’‘i love programming’’’):可括起多行注释
    • 单双引号交错使用("<hehe = 'das '>")
  • 元组 Tuple
    • 使用小括号创建,元素不可修改,例:(1,2,3)
  • 列表 List
    • 使用方括号创建,类似数组,例:[1,1,2,3,‘a’]
  • 字典 Dictionary
    • 使用大括号创建,类似java中的map,是一种可变容器模型,具有键值对(key=>value),例:{‘tom’:1, 9:8}
  • 集合 Set
    • 使用大括号或者set()创建,但空集合必须用set()创建,是一个无序的不重复元素序列,例:{‘a’, ‘b’}

输入和输出

  • 输入:input(),默认为String类型,如需要其他类型请自行强转i = int(input("请输入"))
  • 输出:print(),但有两种格式
    • 利用百分号:print("i love %s"%"programming")
    • 利用format():print("i love {0}".format("programming"))

None

  • 为空,类似于java中的null

运算符

这里只举列出和java不同的运算符

  • 算数运算符
    • 没有自增自减
    • 整除为 // ,/ 为数学的除法
    • **为幂运算
  • 逻辑运算符
    • 逻辑与 and :当 a 为 False 时,a and b 返回 False ,否则返回 b
    • 逻辑或 or : 当 a 为 True 时,a or b 返回 a ,否则返回 b
    • 逻辑非 not : 当 a 为 True 时,not a 返回 False ,否则返回 True
  • 成员运算符
    • not in : 当 x 不在 y 序列中,x not in y 为 True
    • in : 当 x 在 y序列中,x in y 为True
  • 身份运算符
    • is : 判断两者是否引用于同一个对象,是则返回True,类似于 id(x) == id(y),id() 为获取对象地址
    • is not : 判断两者是否引用于不同的对象,是则返回True,类似于 id(x) != id(y),id() 为获取对象地址
  • 优先级
运算符描述
**指数(最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
/ % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位’AND’
^|位运算符
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
and or not逻辑运算符

读写文件

  • open方法
# 写文件
f = open(r"xxx.txt", "w")  
# 以只写的方式打开文件,r为只读,w为只写(如果没有文件则会创建),a为追加,x为创建(如果存在则会报错),默认为r
f.write("i love programming")  # 写入操作
f.close()  #关闭文件(有打开就一定要关闭) 
# 读文件
f = open(r"xxx.txt", "r")  
str = f.read()  # 读取操作
print(str)
f.close()  
  • with语句(推荐使用)
with open(r"xxx.txt", 'r') as f:
	f.seek(2, 0)
	# seek(offset, from), offset为读写指针移动的字节数,打开文件时指针在0处,form:0(从文件头开始)、1(从当前位置开始)、2(从文件末尾开始)
	print(f.tell())  # 显示当前指针位置
	str = f.read()
	print(str)
	#不需要关闭
  • 持续化:
    • pickle : 实现了序列和反序列化
      • 序列化 :将程序中运行的对象信息保存到文件中
      • 反序列化 :在文件中创建上一次程序保护的对象
    • shelve : 类似字典用key=>value对保存数据,但存在一个点(写回问题)
# 序列化
import pickle
name = 'tom'
with open(r'xxx.txt', 'wb') as f:
	pickle.dump(name, f)
# 反序列化
import pickle
with open(r'xxx.txt', 'rb') as f:
	name = pickle.load(f)
	print(name)
# 写回问题
import shelve
shv = shelve.open(r'shv.dat', writeback=True) 
shv['tom'] = {'t':123, 'o':456, 'm':789}
k = shv['tom']
print(k)
k['t'] = 100
shv.close()

shv = shelve.open(r'shv.dat')
k = shv['tom']
print(k)
shv.close()
# 如果第一次没有writeback=True,k['t'] = 100就没有写入,第二次的结果就没有改变
[如果读者没有看懂或者觉得我写的不好可以看官方文档,在此附上链接 ](https://docs.python.org/zh-cn/3/)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值