Python中可以一次行输入多个数字的方法
a,b=map(int,input().split())
#split()函数就是可以自动识别空格断开
猜数字游戏
这里需要调用一下random这个库
import random as ra #当然我这里给他重新定义了一个名字
i = 0
x =ra.randint(0,100)
while i<3:
a = int(input())
if a==x:
print("right")
break
elif a<x:
print("lower")
else:
print("upper")
i+=1
if i>=3:
print(x)
ASCII编码
用chr()函数来进行转换
x = 97
for i in range(1,27):
print(chr(x+i),x+i)#chr()函数的作用
阶乘
def func(x):
if x==1 or x==0:
return 1
else:
return x * func(x-1)
a = int(input("input a number:"))
print(func(a))
无限循环
a=list()
while True:
s = input();
if s=="exit":
break
a.append(s)
for i,task in enumerate(a,1):#enumerate()函数同时获得元素的的编号/索引和值
print(f'{i}.{task}')
'''
nihao
shuijiao
chifan
exit
输出:
1.nihao
2.shuijiao
3.chifan
'''
字符串反转
a = input()
print(''.join(reversed(a)))
print(a[::-1])
join的用法:
a = input() #123
print('.'.join(reversed(a))) #输出3.2.1
print(a[::-1]) #321
'''
123
3.2.1
321
'''
文件的编辑打开与保存
def create_file(filename):
with open (filename,'w') as file:
print(f"文件{filename}已经被创建")
def open_file(filename):
try:
with open(filename,'r') as file:
content = file.read()
print(f'{filename}已经被打开')
print(f'内容是:{content}')
except FileNotFoundError:
print(f'{filename}不存在')
def save_file(filename,content):
with open(filename,'w') as file:
file.write(content)
print(f'{filename}已经被保存')
def main():
filename = input("输入文件名字:")
create_file(filename)
while True:
print("请选择操作:")
print("1.打开文件")
print("2.编辑文件")
print("3.保存文件")
print("4.退出")
f = int(input())
if f==4:
break
elif f==1:
open_file(filename)
elif f==2:
content =input("请输入文件内容")
elif f==3:
save_file(filename,content)
else:
print("请重新输入")
if __name__ == '__main__':
main()
#主函数
图像化编程
import tkinter #内置
from tkinter import * #导入,这样就可以不用使用前缀了
top = Tk()#创建窗口创建窗口对象,top是Tk的实例
label = Label(top,text='这是我的第一个窗口',fg = 'red',font =('黑体',20))#创建GUI程序功能,显示信息
#text是我们要展示的内容
top。title("我的窗口")
top.geometry('480x480+50+100')#+50+100是距离显示器左边和上边的距离
#这里不是乘号,而是小写x
label.pack()#建立GUI模块与代码联系
top.mainloop()#主循环事件
#以上是基本的步骤
实例:电子时钟
from tkinter import *
import time
def get_time():
time_str = time.strftime('%H:%M:%S')
lb.configure(text=time_str)
top.after(1000,get_time)#每隔1000ms进行一个更新
top = Tk()
lb = Label(top,fg='red',font=("黑体",20))
top.geometry('480x480+50+100')#+50+100是距离显示器左边和上边的距离
lb.pack()
get_time()
top.mainloop()
实例:计算器
注意看一下代码,有错误的地方,前面没有写好,后来把老师的代码粘贴了过来
import tkinter as tk
#将文本放在按键上
def on_button_click(value):
current_text = entry_var.get()
entry_var.set(current_text+str(value))
#清空文本框
def clear_entry():
entry_var.set('')
#计算表达式
def calculate_result():
try:
result = eval(entry_var.get())
enrty_var.set(result)
except Exception as e:
enrty_var.set('Error')
root = tk.Tk()
root.title('简易计算器')
enrty_var = tk.StringVar()
#创建显示区域
entry = tk.Entry(root,textvariable = entry_var)
entry.grid(row = 0,colum = 0,columspan=4)
#按钮的布局
buttons = [('7',1,1),('8',1,2),('9',1,3),('/',1,4)
('4',1,1),('5',1,2),('6',1,3),('*',1,4)
('1',1,1),('2',1,2),('2',1,3),('+',1,4)
('0',1,1),('c',1,2),('=',1,3),('-',1,4)]
#创建按钮
for (text,row,column) in buttons:
if text =='c':
botton = tk.Button(root,text = text,command = clear_entry())
elif text =='=':
botton = tk.Button(root,text = text,command = calculate_result())
else:
botton = tk.Button(root,text = text,command =
lamda t=text:on_button_click(t))
button.grid(row,column=column)
#这是一个未完成的代码,存在一定的错误,但是后续会完善
#下面就是一个正确的模拟计算器的代码:
# 开 发 人:zhangxiahui
# 开发时间:2023/11/27 8:43
'''#5个基本步骤
#import tkinter
from tkinter import * #1.导入模块
top=Tk() #2.创建窗口对象,top是Tk的实例
label=Label(top,text='这是我的第一个窗口',fg='red',font=('黑体',20)) #3.创建GUI程序功能,显示信息
top.title('我的窗口') #标题
top.geometry('480x480+100+100') #小写x,创建窗口大小,位置
label.pack() #4.建立GUI模块与代码联系
top.mainloop() #5.主循环事件'''
#电子时钟
'''from tkinter import *
import time
def get_time():
time_str=time.strftime('%H:%M:%S') lb.configure(text= time_str) top.after(1000,get_time)top=Tk()
top.title('我的时钟')
lb=Label(top,fg='red',font=('黑体',80))
top.geometry('500x150+100+100')
lb.pack()
get_time()
top.mainloop()'''
#计算器
import tkinter as tk
#将文本放到按键上
def on_button_click(value):
current_text=entry_val.get()
entry_val.set(current_text+str(value))
#清空文本框
def clear_entry():
entry_val.set("")
#计算表达式
def calculate_result():
try:
result=eval(entry_val.get()) #将用户输入的字符串表达式经过eval求值,来计算用户输入的表达式
entry_val.set(result)
except Exception as e:
entry_val.set('Error')
root = tk.Tk()
root.title("简单计算器")
entry_val =tk.StringVar() #StringVar 是Tkinter提供的一种特殊的变量类型,它用于与Tkinter的控件(如Entry、Label等)关联
#创建显示区域
entry=tk.Entry(root,textvariable=entry_val)
entry.grid(row=0, column=0, columnspan=4, ipadx=8, ipady=8)
#按钮布局
buttons=[('7',1,1),('8',1,2),('9',1,3),('/',1,4),
('4',2,1),('5',2,2),('6',2,3),('*',2,4),
('1',3,1),('2',3,2),('3',3,3),('-',3,4),
('0',4,1),('C',4,2),('=',4,3),('+',4,4)]
#创建按钮
for (text,row,column) in buttons:
if text == 'C':
# 创建清除按钮并绑定清除函数
button = tk.Button(root, text=text, command=clear_entry, font=('Times New Roman', 12),
padx=20, pady=20)
elif text=='=':
button = tk.Button(root, text=text, command=calculate_result, font=('Times New Roman', 12), padx=20, pady=20)
else:
button=tk.Button(root,text=text,command=lambda t=text:on_button_click(t),padx=20,pady=20)
button.grid(row=row,column=column,sticky='nsew')
root.mainloop()
Tk中布局方式
# 1.pack布局方式
from tkinter import Tk,Label
root = Tk()
label = Label(root,text='Label1')
label.pack(padx = 30,pady = 50)
#text文本距离窗口的x距离和y距离
label1 = Label(root,text='Label2')
label1.pack(padx = 30,pady = 50)
#以上一个label的下边为上边继续延伸
root.mainloop()
# 2.grid布局(网格状布局)
from tkinter import Tk,Label
root = Tk()
label = Label(root,text='label1')
label.grid(row=0,column=1)
#3.place(窗口里x轴和y轴,以左上角为原点)
from tkinter import Tk,Label
root = Tk()
label = Label(root,text='label1')
label.place(x=50,y=60)
label1 = Label(root,text='Label2')
label1.pack(x = 60,y = 50)
做一个简单的请假方式
# 开 发 人:zhangxiahui
# 开发时间:2023/11/20 17:08
import tkinter as tk
from PIL import Image, ImageTk #导入图片需要
from tkinter import messagebox #此路不通导入
from random import random #不同意随机移动时导入
root=tk.Tk()
root.geometry('800x500+100+100') #设置了一个宽度为800像素、高度为500像素的窗口,
# 并将其放置在屏幕左上角水平和垂直方向偏移100像素的位置。
root.title('请假申请')
frame1=tk.Frame(root) #窗口,创建一个框架,用于组织和布局其他组件。
frame1.pack()
tk.Label(frame1,text='亲爱的老师:\n我想请假',font=24,padx=30,pady=30).pack(side=tk.LEFT,anchor=tk.N)
#padx,组件跟邻近组件或窗体边界的距离(外边距),pack()函数是用来布局的
img= Image.open(r'F:\AAA工作\11课件\python\tupian\告辞.jpg')
photo = ImageTk.PhotoImage(img) #读取jpg
#img=tk.PhotoImage(file=r'F:\AAA工作\11课件\python\tupian\R.gif') #读取gif
label_img=tk.Label(frame1,image=photo,padx=30,pady=30,bd=50) #Labe中bd表示距离边框的宽度
label_img.pack(side=tk.LEFT,anchor=tk.N)
tk.Label(frame1,text='请假人:张三',font=24,padx=30,pady=30,height=25).pack(side=tk.LEFT)
yes_img= Image.open(r'F:\AAA工作\11课件\python\tupian\同意.png')
photo2= ImageTk.PhotoImage(yes_img)
no_img= Image.open(r'F:\AAA工作\11课件\python\tupian\不同意.png')
photo3= ImageTk.PhotoImage(no_img)
yes_btn=tk.Button(frame1,image=photo2,bd=10)
no_btn=tk.Button(frame1,image=photo3,bd=10) #Button中的bd表示边框宽度
yes_btn.place(relx=0.3,rely=0.8,anchor=tk.CENTER) #relx相对x位置,tk.CENTER为居中放置
no_btn.place(relx=0.7,rely=0.8,anchor=tk.CENTER)
#2第二页设定,可以先把注释frame1.pack(),再写
frame2=tk.Frame(root)
frame2.pack()
tk.Label(frame2,text='耶!\n请假成功!',font=('黑体',20),justify=tk.CENTER,
height=300,fg='red',padx=50).pack() #justify设置对齐方式
tk.Button(frame2,text='退出',command=root.quit).place(relx=0.4,rely=0.8)
#此路不通
def on_exit(): #定义一个事件
messagebox.showwarning(title='提示',message='此路不通')
root.protocol('WM_DELETE_WINDOW',on_exit) #protocol滚轮点击然后看一下
#不同意移动设定
def move(event): #定义一个事件
no_btn.place(relx=random(),rely=random(),anchor=tk.CENTER)
no_btn.bind('<Enter>',move) #<Enter>是将鼠标移近的一个事件
#3点击同意,跳到第二个页面
def sure():
frame1.pack_forget() #将页面1隐藏起来
frame2.pack()
yes_btn.config(command=sure) #tkinter中command功能的作用是为按钮、菜单等组件
# 绑定回调函数,用户操作该组件时会触发相应的函数执行。
root.mainloop()
#这里需要将图片链接给改一下,改成自己电脑上保存图片的位置
处理excel文件的相关模块
openpyxl模块
这是python库的一个模块,需要外部导入
在终端输入pip install openpyxl
下载好后输入python
导入用import openpyxl
以上就是导入外部库的方式
使用外部库
import openpyxl
workbook=openpyxl.load_workbook("文件的地址")
#print(workbook.sheetnames)
sheet = workbook['销售量']#多表格
sheet = workbook.active #进行一个表格的打开(就是不能进行指定了)
print(sheet.dimensions)#输出数据的尺寸(表的大小)
cell = sheet['E8']
print(cell.value)#获取单元格的数据
#如果输出单元格就会出现单元格的属性,不是单元格的数据,如下:
print(cell)
#获取多个单元格的数据
cells = sheet['B3:E7']
#多数据需要遍历输出(在大元组中包含小元组,因为选取的范围是一个二维的)
for cell in cells:
print(cell[0].value)
cells2 = sheet['A']#这个只有一列
for cell in cells2:
print(cell.value)
#上面都是列的遍历,下边有行的遍历
#获取一行
row = sheet[20]
for cell in row:
print(cell.value)
#获取所有行
rows = sheet.rows
for row in rows:
for cell in row:
print(cell.value,end=",")
print('*'*10)
#获取所有列的操作
lies = sheet.cols
for lie in lies:
for cell in lie:
print(cell.value,end=",")
print('*'*10)
#指定行和列
data = sheet.iter_rows(min_row = 1,max_row = 10,min_col=1,max_col = 10)
#指定行和列
#指定一个范围
for row in data:
for cell in row:
print(cell.value,end=",")
print('*'*10)
import openpyxl
workbook = openpyxl.load_workbook('表格1.xlse')
sheet = workbook['Sheet1']
#插入一列
sheet.insert_cols(idx = 2) #在第二列插入新的列
sheet.insert_cols(idx = 2,amount = 3)
sheet.insert_rows(idx = 2,amount = 3)
import openpyxl
workbook = openpyxl.load_workbook('表格1.xlsx')
#print(workbook.sheetnames)
workbook.create_sheet('sheet100') #创建一个子表格
#print(workbook.sheetnames)
#将子表格删除
workbook.remove('sheet100') #不存在子表格就会报错
sheet = workbook['sheet100']
workbook.remove('sheet100')
#复制工作表
workbook.copy_worksheet('sheet1')
print(workbook.sheetnames)
#重命名
sheet = workbook['Sheet']
sheet.title = 'du463'
workbook.save('表格1.xlsx') #最后需要对文件进行一个保存
#最后是都需要写这个保存的
调整字体和样式
import openpyxl
from openpyxl.styles import Font
workbook = openpyxl.load_workbook('表格1.xlsx')
sheet = workbook['Sheet']
#单个单元格的改变
cell = sheet['A1']
font = Font(name = '黑体',size = 20,bold = True,color = '00ff0000') #这里color是需要使用16进制字符表示对应的颜色
cell.font = font
#bold 加粗
#多个单元格
cell_range = sheet['A2:C2']
for row in cell_range:
for cell in row:
cell.font = font
#全部单元格
for row in sheet.iter_rows():
for cell in row:
cell.font = font
#获取单元格字体信息
cell = sheet['A1']
font = cell.font
print(font.name,font.size,font.bold,font.color)
#查看字体名,字体大小,字体是否加粗,字体的颜色
#对其方式
sheet = workbook['Sheet']
cell = sheet['A1']
align = Alignment(horizontal = 'center' , vertical = 'center')
#vertical垂直对齐方式
#horizontal水平对齐方式
cell.alignment = align
workbook.save('表格1.xlsx')
标签:上课,Python,text,笔记,cell,workbook,tk,print,root
From: https://www.cnblogs.com/du463/p/17875622.html