读写文件补充
使用二进制b的时候,必须携带读或者写不能省略让他默认
file_obj = obj.read(3)读取3个字符
默认read(n) n=-1读取所有字符
file_obj.readline(n)读取行的
file_obj.readlines(hint)读取多行 默认hint=-1
readlines(4) 读取到第四个字符所在的行,前面的也全读
file_obj.readable()可读的能力 返回ture or false
.writeable()
file_obj.callable()
file_obj.writelines(["11\n", "22\n", "333"])写多行!记得加换行
每行都\n 很慢
方法:"\n".join(list_data)使用字符串连接列表种所有元素
所以直接file_obj.write("\n".join[])
with open("print_file.txt", encording="utf-8") as file_obj:
和open = ..一样
输入和输出
输入和输出
输入:标准输入:从键盘输入,结束一般敲击enter键
input(返回值就是一个字符串)
input(prompt=None)
prompt输入的提示符,可以是空
input("请输入:")
输出
老格式化输出 占位符号%d %f %s
eg. print("整型为%d, 浮点型%f,字符型%s" %(data,data1,data2))
%4.1f占四位保留一位小数 %4d占四位
占位以后默认向右对齐 %-4d -是向左对齐
新格式化输出
在打印的字符串前加f或者F
1.打印变量
f/F"{variable_name变量名}"
2.设置打印宽度
f/F“{var_name:宽度}”
3设置对齐方式
< left
>right
^conter
f/F"{var_name:对齐方式宽度}"
4 .设置填充符
f/F"{var_name:填充符对齐方式宽度}"
print(f"整形为{data:4},浮点型{data:4}")\
format_str = "{} x {} = {}"大括号里不加内容代表从format的参赛中顺序去取
print(format_str.famat(1, 2, 1 * 2))
{n} n是后面参赛的索引(1, 2, 1*2)对应0 1 2大括号里加n就可以决定他们
{key}:key:认为他就是字典中的key
format(key1=i, key2 =j)
序号:对齐方式宽度
字符串中有一些方法也可以完整格式化
str_data = "1"
print(str_data.rjust(4, "#"))4占位后边填充符
fillchar
模块学习
import module_name:导入模块 必须是同一级别
相当于执行模块里的代码,在哪导入就在哪开始执行
访问模块里的变量,module_name.data就行
from module_name import data导入模块的局部
导入多个局部内容使用逗号分隔
这里导入了能直接用
data后面可以 data as d重命名
包 package:
命名分类模块方便使用
只把__init__.py 当作包
常用的 模块
os:operation system 和操作系统相关的
sys:系统python解释相关
random:随机数
time:时间
json:和json数据格式相关的
import sys
常用
#带V的意思:variable变量
sys.platform 系统所在的平台是win32
sys.version python解释器的版本
sys.modules 当前有哪些模块
sys.path python模块的搜索路径:先后顺序
sys.api_version
sys_argv 代表使用python.exe usual_module.nv的时候传入的参数
sys.exit(-1) 退出顺便控制退出码
【退出码0执行成功 1执行遇到错误 -1手动停止程序】
work
1.什么是模块 我理解的是便携现成的一串通用代码
模块导入的几种方式:improt, from
2.什么是包,然后包和文件夹的区别:包是放模块的 文件夹是放文件的
如何指定 from package import * 的模块:from module_name import data导入模块的局部
3.四种格式化输出方法:
姓名 年龄 家庭住址
四行记录,每行记录使用一种格式化方式(当前这种格式化方法中涉及的都展示出来
除了%,其他的都需要有:宽度,对齐方式,填充)
4.选做:软考的一道题,填空1, 2, 3
s = input("请输入一个由1和0组成二进制字符串: ")
d = __1__
while s:
d = __2__
s = s[1:]
print(f"转换成十进制的数为: {__3__}")
d = 0
while s: # s相当于一个条件:条件为真,继续执行,条件为假,循环结束
# 循环结束的条件应该是"", 空字符串
d = __2__ # 对最左边一位进行操作
d = d + int(s[0]) * 2 ** (len(s) - 1)
# s = s[1:] # 其实就是去掉我们的最高位,也就是最左边的一位
s = s[1:] # 对s进行一个操作