目录标题
一. 文件操作I/O
1.读取文件
使用open()打开文件时必须指定打开文件所要做的操作(读,写,追加),如果不指定操作类型,则默认是读取文件,而读取文件时不能像文件中写入。
r 表示只读取
with open('pi_digits.txt') as file_object:
content=file_object.read()
print(content)
f=open('pi_digits.txt','r')
f.close()
2.删除字符串末尾的空白
with open('pi_digits.txt') as file_object:
content=file_object.read()
print(content.strip())
with open('pi_digits.txt') as file_object:
content=file_object.read()
print(content.rstrip())
3.逐行读取文件
filename='pi_digits.txt'
with open(filename) as file_object:
for i in file_object:
print(line)
4.写入文件
w 表示是可写的,使用w来写入文件时,如果文件不存在会创建文件,如果文件存在则会截断文件即删除文件中的所有内容。
r+ 即可读又可写,文件不存在会报错。
filename='hy.txt'
with open(filename,'w') as file_object:
file_object.write("I love programming.")
filename='hy.txt'
with open(filename,'w') as file_object:
file_object.write("I love programming.")
file_object.write("I love creating new games.")
5.附加到文件
a 表示追加内容,如果文件不存在会创建文件,如果文件存在则会向文件中追加内容。
filename='hy.txt'
with open(filename,'a') as file_object:
file_object.write("I love programming.\n")
file_object.write("I love creating new games.\n")
6.特殊操作符
(1)x 用来新建文件,如果文件不存在则创建,存在则报错。
(2) + 为操作符增加功能
r+
w+
a+
二.Json数据
1.Json的使用
(1) json.dump()
json.dump() 表示写入一个文件,即存储数据。json.dump() 接受两个实参:要存储数据,以及可用于存储数据的文件对象。
import json
num=[2,3,5,7,9,23,11]
filename='num.json'
with open(filename,'w') as f:
json.dump(num,f)
(2) json.load()
json.load() 表示从文件中读取,使用json.load()可将列表读取到内存中。
import json
num=[2,3,5,7,9,23,11]
filename='num.json'
with open(filename,'w') as f:
num=json.laod(f)
print(num)
(3) json.dumps()
json.dumps() 表示写入字符串变量。
import json
s2='["info",{"name":"juran","age":23}]'
p=json.dumps(s2)
print(p)
(4) json.loads()
json.loads() 表示从字符串变量读取。
import json
s1=['info',{'name':'juran','age':23}]
a=json.loads(s1)
print(a)
2.保存和读取用户生成的数据
import json
username=input("What is yuor name?")
filename=username.json
with open(filename,'w') as f:
json.dump(usernane,f)
print(f"We'll remeber you.{username}!")
三.OS模块简介
1.常用的OS模块命令
(1)os.name
作用:判断目前正在使用的平台,并给出操作系统的名字。
(2)os.getcwd()
作用:获取当前工作的目录。
(3)os.listdir(path)
作用:列出path目录下所有的文件和目录名。path参数可以忽略。
(4)os.remove(path)
作用:删除path指定的文件,该参数不能省略。
(5)os.rmdir(path)
作用:删除path指定目录,该参数不能省略。
(6)os.mkdir(path)
作用:创建path指定的目录,该参数不能省略。
(7)os.path.isfile(path)
作用:判断指定对象是否为文件。是则返回True,否则返回False。
(8)os.path.isdir(path)
作用:判断指定对象是否为目录。是则返回True,否则返回False。
(9)os.path.exist(path)
作用:检验指定的对象是否存在。是则返回True,否则返回False。
(10)os.path.split(path)
作用:返回路径的目录和文件名,即将目录和文件名分开,而不是一个整体。
(11)os.system(cmd)
作用:执行shell命令。返回值是脚本的退出状态,0代表成功,1代表不成功。
(12)os.chdir(path)
作用:'change dir’改变目录到指定目录。
(13)os.path.getsize()
作用:获得文件的大小,如果为目录,返回0。
(14)os.path.abspath()
作用:获得绝对路径。
(15)os.path.join(path, name)
作用:连接目录和文件名,与os.path.split(path)相对。
(16)os.path.basename(path)
作用:返回文件名。
(17) os.path.dirname(path)
作用:返回文件路径。
四.日常算法题
1.排序题
输入三个整数x,y,z,请把这三个数由小到大输出。
n=input().split()
m=[int(i) for i in n]
m.sort()
print(m)
2.组合题
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
sum=0
n=[1,2,3,4]
for i in n:
for j in n:
for z in n:
if i!=j and j!=z and z!=i:
sum+=1
print(i,j,z)
print(sum)
3.公司奖金
企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
i=int(input("请输入利润为多少万元:"))
if i<=10:
print("奖金为:",i*1.1)
if 10<i<=20:
print("奖金为:",10*1.1+(i-10)*1.075)
if 20<i<=40:
print("奖金为:",10*1.1+10*1.075+(i-20)*1.05)
if 40<i<=60:
print("奖金为:", 10 * 1.1 + 10 * 1.075 + 20 * 1.05+(i-40)*1.03)
if 60<i<=100:
print("奖金为:", 10 * 1.1 + 10 * 1.075 + 20 * 1.05 + 40 * 1.03+(i-60)*1.015)
if i>100:
print("奖金为:", 10 * 1.1 + 10 * 1.075 + 20 * 1.05 + 40 * 1.03 + 60 * 1.015+(i-100)*1.01)
4.求数
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
for i in range(85):
for j in range(85):
if i%2==0 and j%2==0 or i%2!=0 and j%2!=0:
if i**2-j**2==168:
x=j**2-100
print(x)
5.九九乘法表for i in range(1,10):
for i in range(1,10):
for j in range(1,1+i):
print(f'{i}*{j}=={i*j}',end=' ')
print()
6.复制
list=[1,2,3,4]
list1=list.copy()
print(list1)
7.斐波那契数列
def fbi(n):
if n==1 or n==2:
return 1
else:
return fbi(n-1)+fbi(n-2)
n=int(input())
print(fbi(n))
8.暂停
import time
time.sleep(1)
for i in range(1,10):
for j in range(1,1+i):
print(f'{i}*{j}=={i*j}',end=' ')
print()
9.时间格式化
import time
time_string=time.strftime("%Y-%m-%d %H:%M:%S")
print(time_string)