IO文件输出
问题1:Python如何实现print不换行?
默认情况下Python的print()函数是换行的,如
print("你好大成")print("!!!")#输出你好大成!!!
看下print()函数源代码,默认为end="\n"(换行), \n表示换行符
所以,如果想要不换行,就要改变end 的换行属性,将end的\n 替换成任意你想要的值即可。
利用print换行就可以实现跨行拼接的效果哦!
print("你好大成",end="")print("!!!")#输出你好大成!!!print("你好大成",end="@@我们晚上去吃毛肚吧##")print("???!!!")#输出你好大成@@我们晚上去吃毛肚吧##???!!!
问题2:Python如何实现输入交互?
通过input()函数实现
python3里将raw_input()和input()进行了整合,只保留了input(),返回的是字符串类型;
a = input("请输入你的名字:")print(a)print(type(a))c=input("请输入你的年龄:")print(c)print(type(c))# 输出请输入你的名字:大橙子大橙子请输入你的年龄:3030
所以,当你需要浮点型或者整数类型的时候,需要对输入的字符串做转换
a = input("请输入你的名字:")print(a)print(type(a))c=int(input("请输入你的年龄:"))print(c)print(type(c))b = float(input("你每个月交多少税?\n"))print(b)print(type(b))# 输出请输入你的名字:大橙子大橙子请输入你的年龄:3030 你每个月交多少税?644.54644.54
问题3:Python如何操作文件?
1. 写文件:
(1)先打开文件:open()函数
(2)写入文件:write()函数
(3)关闭文件:close()函数
a = input("请输入你的名字:")print(a)print(type(a))file = open("test.txt",'w') # 打开文件,往文件里写东西,要把mode值改为wfile.write(a) # 把内容写入文件file.close() # 关闭刚才打开的test.txt文件
写文件的时候默认没有指定encoding编码方式,可以在代码里强制指定,也可以在编辑器里设定,根据项目需要来定
utf-8是世界计算机里的通用编码语言,不管什么语言都可以用utf-8编码识别
a = input("请输入你的名字:")print(a)print(type(a))file = open("test.txt",'w', encoding='utf-8') # 打开文件,往文件里写东西,要把mode值改为wfile.write(a) # 把内容写入文件file.close() # 关闭刚才打开的test.txt文件
open()函数mode的参数值:
“r”:打开阅读(默认)
“w”:打开进行写入,首先截断文件,如果文件里已经有内容了,已经存在的内容会被覆盖
“x”:创建一个新文件并打开它进行写入
“a”:打开进行写入,如果文件存在,则附加到文件结尾
“b”:二进制模式
“t”:文本模式(默认)
“+”:打开磁盘文件进行更新(读写)
2. 读文件
file = open("hello.py" , "r") # 先打开文件b = file.read() # 在读取文件内容file.close() # 关闭刚打开的文件print(b)
练习题
# 根据用户输入的文件名,打开文件,然后打印出文件的内容fileName = input("请输入文件名:\n")file = open(fileName,'r',encoding="utf-8")fileText = file.read()print(fileText)
问题4:字符串格式化怎么操作?
两种常用的字符串格式化方法:
1. %方式
print("物美今天搞活动,满%s元, 减%s元" %(200,60))print("物美今天搞活动,满%d元, 减%s元" %('200',60)) # 会报错,因为参数值是字符串,前面接收的是数值# 缺点:参数类型必须与接收参数的类型相同
print("八进制 %o ,\n十进制 %i, \n十六进制 %x ,\n科学计数 %e ,\n浮点数 %f" %(99, 99,99,999.9999999,99.999))
# 满足6位的,不用补齐,保留四位小数print("浮点数的格式化%06.4f" %(66666666.66666666))# 06表示的是宽度,不足6位的用0补齐,保留四位小数print("浮点数的格式化%06.4f" %(6666.66666666)) #输出浮点数的格式化66666666.6667浮点数的格式化6666.6667
2.format方式(Python3里新的字符串格式化方法,推荐)
print("物美今天搞活动,满{0}元, 减{1}元".format(200,60))print("物美今天搞活动,满{0}元, 减{1}元".format('200',60)) print("物美今天搞活动,满{}元, 减{}元".format('200',60))# {}里的数字,表示的是format()里参数的位置# {}里没有数字时,默认按照format()里参数的位置往{}里填值# 优点:规避了%方式里参数前后类型不一致的缺点
print("八进制 {:o} ,十进制 {:d}, 十六进制 {:x} ,科学计数 {:e} ,浮点数 {:.2f}".format(99, 99,99,999.9999999,666.6666))print("八进制 {:o} ,十进制 {:04d}, 十六进制 {:x} ,科学计数 {:e} ,浮点数 {:.2f}".format(99, 99,99,999.9999999,666.6666))print("八进制 {:o} ,十进制 {:04d}, 十六进制 {:x} ,科学计数 {:e} ,浮点数 {:08.2f}".format(99, 99,99,999.9999999,666.6666))# :04 表示宽度是4位,不足4位用0补齐# :08.2f 表示宽度是8位,包含小数点,不足8位用0补齐,保留2位小数点