#判断水仙花数
while 1:
sum = 0
num = input(“请输入一个数:(100-999)(按Q/q退出程序)”)
if num.isdigit():
if 99<int(num)<1000:
for i in num:
a = int(i)**3
sum = sum +a
# print(num,sum)
if sum==int(num):
print(‘这个数%s是水仙花数’% num)
break
else:
print(‘该数%s不是水仙花数’% num)
else:
print(‘该数超出范围’)
elif num.upper() == ‘Q’:
break
else:
print(“都让你输入一个数字了!”)
#36选7
from random import randint #随机数
lst = []
count = 1
while count <8:
r = randint(1,36)
if r not in lst:
lst.append®
elif r in lst:
count = count - 1
count = count + 1
else:
print(lst)
#a,b两个值互换a,b = b,a
lst = [4,5,1,2,3,6,7,4]
count = 0
while count < len(lst):
i = 0
while i < len(lst) - 1:
if lst[i] > lst[i+1]:
lst[i],lst[i+1] = lst[i+1],lst[i]
i = i + 1
count = count + 1
print(lst)
#文件操作
#r模式
#文件路径:
#1.绝对路径,从磁盘的根目录寻找 或 从互联网上寻找一个路径
#2.相对路径,相对于当前按程序所在文件夹 …/上一层文件夹
f = open(“文件名/路径”,mode=’’,encoding = ‘’)
s = f.read()
s = f.readline() #一次读一行
f.close()#如果没有,在下面程序删除文件会报错
for line in f: #文件是一个可迭代对象
print(line.strip()) #一行一行的处理数据
#w模式
#带w的,只要操作了,就会清空源文件
#如果文件不存在,会自动创建文件
f.write(’’)
f.flush() #刷新缓冲区
#a模式
#换行需要手动控制
f.write(’’)
#rb,wb,ab,bytes如果处理的是非文本文件,mode中有b,enco不能给
f = open(“c:/”,mode = “rb”) #这里不能写encoding
e = open(“e:/”,mode = “wb”)
for line in f : #从C盘读取
w.write(line) #写入到e盘
f.close()
e.flush()
e.close()
#r+模式
#不论你读取了多少内容,光标在哪儿,写入的时候都是在结尾写入,除非上来就写入,此时在开头
#最好用的读写同时存在的模式
#w+模式
#很少用,会清空文件中的内容
#写完之后光标在最后,此时读取没有内容
f.seek(0) #移动光标
#f.seek(n)光标移动到n的位置,注意:移动的是byte,所以如果是UTF—8的中文部分要是3的倍数
#f.seek(偏移量,位置) 位置0:首位 位置1:当前位置 位置2:末尾
#a+模式
#写完之后光标在最后,此时读取没有内容
#f.seek(0) #移动光标
#f.tell() #获取当前光标位置
#f.truecate() #截断文件 删掉光标后面全部内容
#f.truecate(n) #截断文件 删掉n位置后面全部内容
#文件修改
#1.引入os模块
#2.打开目标文件 r
#3.打开文件副本 w
#4.从r中读取内容进行修改,写入到副本中
#5.删除源文件
#6.重命名副本
import os
with open(“文件名”,mode="",encoding="") as f1,
open(“文件名—副本”,mode="",encoding="") as f2 #打开文件,好处是运行完不用close
for line in f1:
line=line.replace(“XXX”,“XX”) #将文件中的XXX改为XX
f2.write(line)
os.remove(“文件名”) #删除文件
os.rename(“文件名—副本”,“文件名”) #将副本重命名