diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/liutianshuo.iml b/.idea/liutianshuo.iml new file mode 100644 index 0000000..a461c53 --- /dev/null +++ b/.idea/liutianshuo.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a90b30f --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..faf8a81 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/2024-10-11-1.py b/2024-10-11-1.py new file mode 100644 index 0000000..3bc2805 --- /dev/null +++ b/2024-10-11-1.py @@ -0,0 +1,10 @@ +a=int(input("半径是:")) +class circle(): + def __init__(self,r): + self.r=r + + def cir(self): + print('周长是:',3.14159265358979323846*self.r*2) + print('面积是:',3.14159265358979323846*self.r**2) +circle1=circle(a) +circle1.cir() \ No newline at end of file diff --git a/2024-10-19-1.py b/2024-10-19-1.py new file mode 100644 index 0000000..47e0668 --- /dev/null +++ b/2024-10-19-1.py @@ -0,0 +1,4 @@ +def say_hello(x): + print("hello",x) + return +say_hello(input()) \ No newline at end of file diff --git a/2024-10-19-2.py b/2024-10-19-2.py new file mode 100644 index 0000000..4861b08 --- /dev/null +++ b/2024-10-19-2.py @@ -0,0 +1,10 @@ +def is_san(c,d,e): + if c+d>e and c+d>e and c+d>e: + print('yes') + else: + print('no') + +a=int(input()) +b=int(input()) +c=int(input()) +is_san(a,b,c) \ No newline at end of file diff --git a/2024-10-25-1.py b/2024-10-25-1.py new file mode 100644 index 0000000..3a48a83 --- /dev/null +++ b/2024-10-25-1.py @@ -0,0 +1,11 @@ +class student(): + def __init__(self,a): + self.a=a +print(student.__class__) +a=2 +print(a.__class__) +str="python" +print(str.__class__) +class person: + pass +print(person.__doc__) \ No newline at end of file diff --git a/2024-10-26-1.py b/2024-10-26-1.py new file mode 100644 index 0000000..94fe43d --- /dev/null +++ b/2024-10-26-1.py @@ -0,0 +1,5 @@ +n=int(input()) +sum=0 +for i in range(n): + sum+=int(input()) +print('%.2f'%(sum/n)) diff --git a/2024-10-26-2.py b/2024-10-26-2.py new file mode 100644 index 0000000..6cc148a --- /dev/null +++ b/2024-10-26-2.py @@ -0,0 +1,5 @@ +n=int(input()) +sum=0 +for i in range(1,n+1): + sum=sum+i +print(sum) diff --git a/2024-10-26-3.py b/2024-10-26-3.py new file mode 100644 index 0000000..e69de29 diff --git a/2024-11-1-1.py b/2024-11-1-1.py new file mode 100644 index 0000000..0ee9803 --- /dev/null +++ b/2024-11-1-1.py @@ -0,0 +1,12 @@ +class Person(object): + def __init__(self,name,age,birthday,sex): + self.name = name + self.age = age + self.birthday = birthday + self.sex=sex +person=Person("xm","18","10月8日","女") +print(person.__dict__) +print(Person.__dict__) +print(dir(Person)) +print(type(Person),type(person)) +print(Person.__class__,person.__class__) \ No newline at end of file diff --git a/2024-11-1-2.py b/2024-11-1-2.py new file mode 100644 index 0000000..f26d3dc --- /dev/null +++ b/2024-11-1-2.py @@ -0,0 +1,18 @@ +class ticket: + def __init__(self,weekend=False,child=False,): + self.exp=100 + if weekend: + self.inc=1.2 + else: + self.inc=1 + if child: + self.discount=0.5 + else: + self.discount=1 + def calc(self,num): + P=self.exp*self.inc*self.discount*num + return P + +adult=ticket() +child=ticket(child=True) +print("2个成人+1个小孩平日票价为:%.2f"%(adult.calc(2)+child.calc(1))) \ No newline at end of file diff --git a/2024-11-22-1-普通.py b/2024-11-22-1-普通.py new file mode 100644 index 0000000..f052360 --- /dev/null +++ b/2024-11-22-1-普通.py @@ -0,0 +1,2 @@ +n=int(input()) +print(round(2+(n-1)*0.8)) \ No newline at end of file diff --git a/2024-11-22-1.py b/2024-11-22-1.py new file mode 100644 index 0000000..89e5dae --- /dev/null +++ b/2024-11-22-1.py @@ -0,0 +1,10 @@ +n=int(input("请输入借书天数")) +s=0 +if n<1: + print("您输入的借书天数有错") +else: + if n==1: + s=2 + else: + s=2+(n-1)*0.8 + print(round(s),"元") \ No newline at end of file diff --git a/2024-11-22-2.py b/2024-11-22-2.py new file mode 100644 index 0000000..f14ab56 --- /dev/null +++ b/2024-11-22-2.py @@ -0,0 +1,6 @@ +n=1 +while True: + if n%9==7 and n%5==2 and n%4==1: + print(n) + break + n+=1 \ No newline at end of file diff --git a/2024-11-29-1.py b/2024-11-29-1.py new file mode 100644 index 0000000..8975c10 --- /dev/null +++ b/2024-11-29-1.py @@ -0,0 +1,9 @@ + +def sort(arr): + if len(arr)<=1: + return arr + base=arr[0] + left=[i for i in arr[1:]if i<=base] + right=[i for i in arr[1:] if i > base] + return sort(left)+[base]+sort(right) +print(sort([23,4332,44,6,43,423,5,4,64,35,34,54,576,56,36,57,587,46,6,5,75,])) \ No newline at end of file diff --git a/2024-9-20-1未做完.py b/2024-9-20-1未做完.py new file mode 100644 index 0000000..cde03f7 --- /dev/null +++ b/2024-9-20-1未做完.py @@ -0,0 +1,123 @@ +students={"张三":{"name":"张三", + "ID":202001, + "语文":89, + "数学":97, + "英语":91 + }, + "李四":{"name":"李四", + "ID":202002, + "语文":97, + "数学":81, + "英语":90 + }, + "王五": {"name": "王五", + "ID": 202003, + "语文": 97, + "数学": 100, + "英语": 94 + }, + "赵六": {"name": "赵六", + "ID": 202004, + "语文": 81, + "数学": 92, + "英语": 73 + } +} + +def showinfo(): + print("-"*110) + print(''' 学生成绩系统 + 1.添加学生信息 + 2.删除学生信息 + 3.修改学生信息 + 4.查询学生信息 + 5.学生成绩排序 + 6.列出所有学生信息 + 7.退出程序''') + print("-"*110) +def paixu(a,b): + return [name for name in students.keys()if students[name][a]>=b] +c=0 +while True: + showinfo() + choice=input("请输入你的选择:") + if choice=="1": + id=int(input("要添加的学生的ID:")) + c=0 + for i in students: + if id==students[i]["ID"]: + c=1 + break + if c==1: + print("学生已在列表中") + else: + d1=input("学生姓名:") + + + students[d1]={ + "name": d1, + "ID": id, + "语文": int(input("语文成绩:")), + "数学": int(input("数学成绩:")), + "英语": int(input("英语成绩:")) + } + elif choice=="2": + id = int(input("要删除的学生的ID:")) + c = 0 + for i in students: + if id == students[i]["ID"]: + c = 1 + break + if c == 1: + print("学生没在列表中") + else: + d1 = input("学生姓名:") + del students[d1] + elif choice=="3": + id = int(input("要修改的学生的ID:")) + c = 0 + d=0 + for i in students: + d=i + if id == students[i]["ID"]: + c = 1 + break + if c: + del students[d] + d1 = input("学生姓名:") + students[d1] = { + "name": d1, + "ID": id, + "语文": int(input("语文成绩:")), + "数学": int(input("数学成绩:")), + "英语": int(input("英语成绩:")) + } + else: + print("不在列表") + + elif choice=="4": + id = int(input("要查询的学生的ID:")) + + for i in students: + + if id == students[i]["ID"]: + + c = 1 + break + if c == 1: + print("学生没在列表中") + else: + d1 = input("学生姓名:") + print(d1,students[d1]) + elif choice=="5": + a=input("学科:") + b=int(input("筛选成绩:")) + print(paixu(a,b)) + elif choice=="6": + for i in students: + print(i,students[i]) + elif choice=="7": + print("退出程序") + break + else: + print("无效输入,请重新输入") \ No newline at end of file diff --git a/2024-9-27-1.py b/2024-9-27-1.py new file mode 100644 index 0000000..0a1e6c4 --- /dev/null +++ b/2024-9-27-1.py @@ -0,0 +1,56 @@ +value=input().split() +n,m,k=int(value[0]),int(value[1]),int(value[2]) +b=[] +for i in range(n): + temp = [] + for j in range(n): + temp.append(0) + b.append(temp) +def zuobiao(x1,y1): + if 0<=x1<=n-1 and 0<=y1<=n-1: + return 1 + else: + return 0 +def huo(x,y): + heng=x-2 + for i in range(heng,heng+5): + temp= zuobiao(i,y) + if temp: + b[i][y] = 1 + + lie=y-2 + for i in range(lie,lie+5): + temp= zuobiao(x,i) + if temp: + b[x][i] = 1 + + listx=[x-1,x+1] + listy=[y-1,y+1] + for i in listx: + for j in listy: + temp= zuobiao(i,j) + if temp: + b[i][j] = 1 + +def yingshi(x,y): + heng=x-2 + lie=y-2 + for i in range(heng,heng+5): + for j in range(lie,lie+5): + temp= zuobiao(i,j) + if temp: + b[i][j] = 1 +for i in range(m): + x1,y1=map(int,input().split()) + huo(x1-1,y1-1) +for i in range(k): + x2,y2=map(int,input().split()) + yingshi(x2-1,y2-1) +count=0 +for i in range(n): + for j in range(n): + print(b[i][j],end=' ') + if b[i][j]==0: + count+=1 + print() +print(count) \ No newline at end of file diff --git a/2024-9-29 LV2.py b/2024-9-29 LV2.py new file mode 100644 index 0000000..83a3c5e --- /dev/null +++ b/2024-9-29 LV2.py @@ -0,0 +1,23 @@ +def g(n,start,a,b): + if sum(a)==n: + b.append(a[:]) + return + + for i in range(start,n+1): + if sum(a)+i>n: + break + a.append(i) + g(n,i,a,b) + a.pop() + +def p(n): + b=[] + g(n,1,[],b) + b.sort() + for r in b: + print(" ".join(map(str,r))) + +n=int(input()) +p(n) + + diff --git a/2024-9-29.py b/2024-9-29.py new file mode 100644 index 0000000..b61dff5 --- /dev/null +++ b/2024-9-29.py @@ -0,0 +1,28 @@ +a=int(input()) +for i in range(1,a+1): + u=[] #失败 + u.append(i) + if sum(u) == a: + print(u) + for j in range(1, a + 1): + u.append(j) + if sum(u) == a: + print(u) + for k in range(1, a + 1): + u.append(k) + if sum(u) == a: + print(u) + for b in range(1, a + 1): + u.append(b) + if sum(u) == a: + print(u) + for y in range(1, a + 1): + u.append(y) + if sum(u) == a: + print(u) + u.pop() + u.pop() + u.pop() + u.pop() + u.pop() + diff --git a/2024-9-29加强.py b/2024-9-29加强.py new file mode 100644 index 0000000..bfd178c --- /dev/null +++ b/2024-9-29加强.py @@ -0,0 +1,23 @@ +def g(n,start,a,b): + if sum(a)==n: + b.append(a[:]) + return + + for i in range(1,n+1): + if sum(a)+i>n: + break + a.append(i) + g(n,i,a,b) + a.pop() + +def p(n): + b=[] + g(n,1,[],b) + b.sort() + for r in b: + print(" ".join(map(str,r))) + +n=int(input()) +p(n) + + diff --git a/2024-9-6-1.py b/2024-9-6-1.py new file mode 100644 index 0000000..5abbc07 --- /dev/null +++ b/2024-9-6-1.py @@ -0,0 +1,52 @@ +import turtle +import random +t=turtle.Turtle() + +t.speed(0) + +def lian(x, y): + t.penup() + t.goto(x, y) + t.pendown() + t.fillcolor("yellow") + t.begin_fill() + t.circle(35) + t.end_fill() + +def eyes(x27,y5): + t.penup() + t.goto(x27,y5) + t.pendown() + t.fillcolor("black") + t.begin_fill() + t.circle(6) + t.end_fill() + + t.penup() + t.goto(x27, y5+4) + t.pendown() + t.fillcolor("white") + t.begin_fill() + t.circle(2) + t.end_fill() + +def zui(x,y): + t.penup() + t.goto(x,y) + t.pendown() + t.setheading(-45) + t.circle(radius=40, extent=90, steps=4) #circle(radius=50,extent=80,steps=5) + +def smile(x,y): + lian(x,y) + eyes(x+17,y+40) + eyes(x -17, y + 40) + zui(x-25,y+26) + t.setheading(0) + +for i in range(1000): + y = random.randint(-7, 7) * 70 + x = random.randint(-6, 6) * 70 + smile(x,y) +t.hideturtle() +turtle.done() diff --git a/2025-1-3-1.py b/2025-1-3-1.py new file mode 100644 index 0000000..4ae6250 --- /dev/null +++ b/2025-1-3-1.py @@ -0,0 +1,31 @@ +import tkinter +from PIL import Image,ImageTk +from tkinter import filedialog +import os +from amzqr import amzqr +tk=tkinter.Tk() +tk.geometry("400x400") +tk.resizable(0,0) +bg_image=Image.open("qrcode_bg.jpg") +bg_image=ImageTk.PhotoImage(bg_image) +bg_label=tkinter.Label(tk,image=bg_image) +bg_label.pack() +text1=tkinter.Text(tk,font=("华文行楷",12),width=30,height=5) +text1.place(x=80,y=100) +text2=tkinter.Text(tk,font=("华文行楷",12),width=23,height=1) +text2.place(x=80,y=250) +def get_pic(): + pic_path=filedialog.askopenfilename() + text2.delete("1.0","end") + text2.insert("1.0",pic_path) +btn2=tkinter.Button(tk,text="浏览",font=("华文行楷",12),command=get_pic) +btn2.place(x=312,y=250,height=25) +def qr(): + word=text1.get("1.0","end") + word="".join(word.split("\n")) + picture=text2.get("1.0","end")[:-1] + version,level,qr_name=amzqr.run(words=word,picture=picture,colorized=True) + os.system(qr_name) +btn1=tkinter.Button(tk,text="生成二维码",font=("华文行楷",15),command=qr) +btn1.place(x=80,y=300,width=250) +tk.mainloop() \ No newline at end of file diff --git a/2025-1-7-1.py b/2025-1-7-1.py new file mode 100644 index 0000000..ce1c9e9 --- /dev/null +++ b/2025-1-7-1.py @@ -0,0 +1,25 @@ +import tkinter as tk +import random +import threading +import time +from PIL import Image,ImageTk +from pygame.examples.cursors import image + +from 二维码生成器 import text_input + + +class MovingLabel(threading.Thread): + def __init__(self,window,text): + threading.Thread.__init__(self) + self.text=text + self.label=tk.label(window,image=kuang,text=self.text,compound="center",font=("黑体",20),fg="white",width=190,height=45) + self.label.place(x=800,y=random.randint(10,550)) + def run(self): + x=800 + while x>-200: + x-=2 + self.label.place(x=x) + time.sleep(0.02) + self.label.destroy() +def send(): + text=e1.get() \ No newline at end of file diff --git a/24点.py b/24点.py new file mode 100644 index 0000000..2d56362 --- /dev/null +++ b/24点.py @@ -0,0 +1,3 @@ +list=[] +for i in range(4): + list.append(int(input())) \ No newline at end of file diff --git a/qrcode_bg.jpg b/qrcode_bg.jpg new file mode 100644 index 0000000..b9132dd Binary files /dev/null and b/qrcode_bg.jpg differ diff --git a/qrcode_bg_qrcode.png b/qrcode_bg_qrcode.png new file mode 100644 index 0000000..1f71399 Binary files /dev/null and b/qrcode_bg_qrcode.png differ diff --git a/二维码生成器.py b/二维码生成器.py new file mode 100644 index 0000000..4b287a0 --- /dev/null +++ b/二维码生成器.py @@ -0,0 +1,116 @@ +import tkinter as tk +from tkinter import filedialog, messagebox +import qrcode +from PIL import Image + + +# 生成二维码的函数 +def generate_qr(): + text = text_input.get("1.0", tk.END).strip() # 获取用户输入的文字 + if not text: + messagebox.showerror("错误", "请输入内容!") + return + + # 选择保存路径 + save_path = filedialog.asksaveasfilename( + defaultextension=".png", + filetypes=[("PNG 图片", "*.png"), ("所有文件", "*.*")] + ) + if not save_path: + return # 用户取消保存时退出 + + try: + # 调用 qrcode 库生成二维码 + qr = qrcode.QRCode( + version=1, # 控制二维码大小,1~40 + error_correction=qrcode.constants.ERROR_CORRECT_H, # 容错率,可选 L, M, Q, H + box_size=10, # 每个模块的像素大小 + border=4, # 边框宽度(模块单位) + ) + qr.add_data(text) # 添加内容 + qr.make(fit=True) # 适配大小 + + # 生成二维码图片 + qr_img = qr.make_image(fill_color="black", back_color="white").convert("RGBA") + + # 将二维码中的白色背景透明化 + qr_img = make_background_transparent(qr_img) + + # 如果选择了背景图片,将其融合到二维码中 + if bg_image_path.get(): + bg_img = Image.open(bg_image_path.get()).convert("RGBA") + qr_img = blend_qr_with_bg(qr_img, bg_img) + + qr_img.save(save_path) # 保存图片 + messagebox.showinfo("成功", f"二维码已生成并保存至:\n{save_path}") + except Exception as e: + messagebox.showerror("错误", f"生成二维码失败:\n{e}") + + +# 选择背景图片的函数 +def select_bg_image(): + file_path = filedialog.askopenfilename( + filetypes=[("图片文件", "*.png;*.jpg;*.jpeg"), ("所有文件", "*.*")] + ) + if file_path: + bg_image_path.set(file_path) + bg_label.config(text=f"已选择背景图片:{file_path}") + + +# 将二维码和背景图片融合的函数 +def blend_qr_with_bg(qr_img, bg_img): + # 调整背景图片大小与二维码一致 + bg_img = bg_img.resize(qr_img.size, Image.Resampling.LANCZOS) + + # 将二维码与背景图片融合 + # 将二维码图像直接粘贴到背景图上 + bg_img.paste(qr_img, (0, 0), qr_img) + + return bg_img + + +# 将二维码图像中的白色背景转为透明 +def make_background_transparent(img): + # 获取图片的像素数据 + img_data = img.getdata() + + # 创建新的像素列表,透明化白色背景 + new_data = [] + for item in img_data: + # 如果是白色背景(RGB: 255, 255, 255),则设置透明度为 0 + if item[0] == 255 and item[1] == 255 and item[2] == 255: + new_data.append((255, 255, 255, 0)) # 透明 + else: + new_data.append(item) # 保留原始颜色 + + # 更新图像数据 + img.putdata(new_data) + return img + + +# 创建主窗口 +window = tk.Tk() +window.title("二维码生成器") +window.geometry("500x400") + +# 创建输入框和标签 +label = tk.Label(window, text="请输入内容:", font=("Arial", 12)) +label.pack(pady=10) + +text_input = tk.Text(window, height=6, width=50) +text_input.pack(pady=10) + +# 背景图片选择 +bg_image_path = tk.StringVar() # 用于存储背景图片路径 +bg_button = tk.Button(window, text="选择背景图片", font=("Arial", 12), command=select_bg_image) +bg_button.pack(pady=5) + +bg_label = tk.Label(window, text="未选择背景图片", font=("Arial", 10)) +bg_label.pack(pady=5) + +# 创建生成按钮 +generate_button = tk.Button(window, text="生成二维码", font=("Arial", 12), command=generate_qr) +generate_button.pack(pady=10) + +# 启动主循环 +window.mainloop() diff --git a/报错.py b/报错.py new file mode 100644 index 0000000..1575177 --- /dev/null +++ b/报错.py @@ -0,0 +1,64 @@ +#语法错误SyntaxError: +#2_a=2 + +#SyntaxError: invalid decimal literal + + +#list=[2,3,4,5,6,7,8] +#for i in list: + #list.append(12) + +#SyntaxError: invalid character ':' (U+FF1A) + + +#for i in range + #a=1 + +#SyntaxError: expected ':' + + + +#类型错误TypeError: +#a=1 +#b='1' +#print(a+b) + +#TypeError: unsupported operand type(s) for +: 'int' and 'str' + + + +#名称错误NameError: +#r + +#NameError: name 'r' is not defined + + + +#分数为零ZeroDivisionError: +#n=1 +#print(n/0) + +#ZeroDivisionError: division by zero + + + +#值异常ValueError: +#a=int("1.4") + +#ValueError: invalid literal for int() with base 10: '1.4' + + + +#属性异常AttributeError: +#import math +#math.goto + +#AttributeError: module 'math' has no attribute 'goto' + + + +#下标越界异常IndexError: +#list=[1,2,3,4,5,6] +#list[6] + +#IndexError: list index out of range \ No newline at end of file diff --git a/环境.py b/环境.py new file mode 100644 index 0000000..28e1cd4 --- /dev/null +++ b/环境.py @@ -0,0 +1,5 @@ +# 点击运行【安装第三方库.py】,即可安装本课用到的第三方库 +# 使用清华镜像源安装amzqr +import pip +pip.main(['install', 'qrcode', '--index-url', 'https://pypi.tuna.tsinghua.edu.cn/simple']) + diff --git a/超级玛丽.py b/超级玛丽.py new file mode 100644 index 0000000..51e853a --- /dev/null +++ b/超级玛丽.py @@ -0,0 +1,24 @@ +print(''' + ******** + ************ + ####....#. + #..###.....##.... + ###.......###### ### ### + ........... #...# #...# + ##*####### #.#.# #.#.# + ####*******###### #.#.# #.#.# + ...#***.****.*###.... #...# #...# + ....**********##..... ### ### + ....**** *****.... + #### #### + ###### ###### +############################################################## +#...#......#.##...#......#.##...#......#.##------------------# +###########################################------------------# +#..#....#....##..#....#....##..#....#....##################### +########################################## #----------# +#.....#......##.....#......##.....#......# #----------# +########################################## #----------# +#.#..#....#..##.#..#....#..##.#..#....#..# #----------# +########################################## ############ +''')