由简入繁,最开始只是一个简单的小问题,问题是这样的,给你一串字符串,上面写了我的真心话,看不懂的话输入数字1会给出一部分答案,输入数字2则会输出另外一部分答案。
最初的代码是这样的:
s1 = "Reading books is my favorite hobby"
s2 = "I like you more than reading books"
s = "".join(["".join(x) for x in zip(s1,s2)])
print(s)
# print(len(s1),len(s2))
num1 = input("想知道这是什么意思吗?\n 那就输入数字1\n")
if num1 == '1':
print(s[::2])
num2 = input("你以为这就完了吗,你输入数字2试试看!\n")
if num2 == '2':
print(s[1::2])
看完代码也大概知道是什么样的逻辑了吧。
既然做到这里了,就想可不可以图形化,于是就找到了python的tkinter这个模块可以实现图形化,于是有了下边的比较复杂一点但是已然比较粗糙的版本,代码如下:
import tkinter as tk
s1 = "Reading books is my favorite hobby"
s2 = "I like you more than reading books"
s = "".join(["".join(x) for x in zip(s1,s2)])
window = tk.Tk()
window.title('听听我的真心话')
window.geometry('600x600')
l = tk.Label(window,
text='欢迎来到我的世界!', # 标签的文字
bg='green', # 背景颜色
font=('Arial', 12), # 字体和字体大小
width=100, height=4 # 标签长宽
)
l.pack() # 固定窗口位置
var = tk.StringVar() # 这是文字变量储存器
l = tk.Label(window,
textvariable=var, # 使用 textvariable 替换 text, 因为这个可以变化
bg='green', font=('Arial', 10), width=100, height=4)
l.pack()
on_hit = False # 默认初始状态为 False
def hit_me():
global on_hit
if on_hit == False: # 从 False 状态变成 True 状态
on_hit = True
var.set(s) # 设置标签的文字为 'you hit me'
else: # 从 True 状态变成 False 状态
on_hit = False
var.set('') # 设置 文字为空
b = tk.Button(window,
text='点击聆听我的真心话', # 显示在按钮上的文字
width=25, height=2,
command=hit_me) # 点击按钮式执行的命令
b.pack() # 按钮位置
def hit_me1():
global on_hit
if on_hit == False: # 从 False 状态变成 True 状态
on_hit = True
var.set(s1) # 设置标签的文字为 'you hit me'
else: # 从 True 状态变成 False 状态
on_hit = False
var.set('') # 设置 文字为空
b1 = tk.Button(window,
text='看懂了吗?', # 显示在按钮上的文字
width=25, height=2,
command=hit_me1) # 点击按钮式执行的命令
b1.pack()
def hit_me2():
global on_hit
if on_hit == False: # 从 False 状态变成 True 状态
on_hit = True
var.set(s2) # 设置标签的文字为 'you hit me'
else: # 从 True 状态变成 False 状态
on_hit = False
var.set('') # 设置 文字为空
b2 = tk.Button(window,
text='这么笨,那我告诉你', # 显示在按钮上的文字
width=25, height=2,
command=hit_me2) # 点击按钮式执行的命令
b2.pack()
# 这里是窗口的内容
window.mainloop()
最后的界面是这样的:
20181226