总览—-主函数执行(pyhton版)

1.Main()函数的工作原理

因此,我们接下来开始分解模块来进行编程,以后会进行更新改进,不会再使用print式进行交互

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def main():
"""实现主要的业务逻辑"""
while True:
print_menu()
choose = input("请输入你需要的功能:")
if choose == '1':
add_User()
elif choose == '2':
append_YourMov(Users[-1]["level"])
elif choose == '3':
Detele_Mov()
elif choose == '4':
show_allBehavior()
elif choose == '5':
exit()
elif choose == '6':
pass #可以自己拓展


#执行主函数代码,一run就开始调用该函数
if __name__ == '__main__':
main()

2.为用户打印出总菜单

这里是分别打印出选项,供给客户选择

1
2
3
4
5
6
7
8
9
10
11
12
#打印出主菜单,供用户选择功能
def print_menu():
print(date) # 这个是用来调用我在上面引用的api,如果报错请删掉这一行 用来显示时间
print("-----------------------")
print("您的贴心撸铁友 v1.0")
print("1:添加个人用户")
print("2:添加动作")
print("3:删除动作")
print("4:显示锻炼日志")
print("5:结束运行")
print("-----------------------")
print(sen) #显示名人名言

3.引入的库函数

我们在这里引入的库函数,它的作用是显示日期和每日好句(从open.iciba.com获取的api)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"""
* @date---里面是今天的日期
* @content ---每日一句
* @sen---每日一句 content 和 sen 的语句是不同的,注意一下
*
"""
import requests
from bs4 import BeautifulSoup
from datetime import datetime
date=datetime.today().strftime("%Y年%m月%d日") #生成日期
url = 'http://open.iciba.com/dsapi/'
res = requests.get(url)
content_e = res.json()['content']
content_c = res.json()['note']
content = content_e + content_c
#content_t = res.json()['picture2']
url2=r"http://dict.cn"
resp = requests.get(url2)
soup = BeautifulSoup(resp.text,"html.parser")
htm=soup.find("div",class_="daily_sentence")
sen=htm.text.strip().split("\n\t")[2].strip()

1.添加用户功能

1.原来版本

原理:这里我们简单地使用print,if…else,for循环来实现添加用户功能,以及加上一个User数组用来存放用户字典类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
User = []
def add_User():
print("哔哔哔---!正在加载中")
global Users #全局变量
name = input("请输入用户姓名:")
for person in Users:
if person["name"] == name:
print("该名称已被占用")
return
"""在这几个输入前面插入for 循环遍历是为了防止名称重复,并且重名时可以提前结束
防止做无用功"""
age = input("请输入用户年龄:")
security = input("请输入用户密码:")
level = int(input("请输入您现在的健身状态:(1.小白,2.大佬(请输入选项数字)):"))
user = {
"name":name,
"age":age,
"security":security,
"level": level
}
Users.append(user)
print("添加用户信息成功")
print(Users)

2.更新版本

……等待您的发掘…….

2.添加锻炼动作

1.原始版本

原理:这个是你添加动作的地方,模板我写好了.
@level—-代表等级的意思,我在这里设置了1.小白,2.大佬这两个等级,你在用户登录的时候就已经要求设置好了
@choose2—-代表选择的动作,你可以看到那个函数 def append_YourMov(level): 这里面我已经设置好了choose2的范围1-6

1.这是内部的实现

里面空出来的部分是可以用来自由发挥的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Behavior = [] #用来装入锻炼动作
#2的内部调用函数,用来选择动作
def Movement_menu(levle,choose2):
#等级1是小白,等级二是大佬
global Behavior #全局数组
if levle == 1 and choose2 == 1:
end = True #为了是结束选择
while True:
print("---------------------")
print("1.双杠臂屈伸")
print("2.俯卧撑")
print("3.哑铃飞鸟")
print("4.退出")
print("---------------------")
choice = int(input("老铁你的选择是.....")) #这里输入选择,为下面持续选择做准备
if choice == 1:
Mov = {
"name": "双杠臂屈伸"
}
elif choice == 2:
Mov = {
"name": "俯卧撑"
}
elif choice == 3:
Mov = {
"name": "哑铃飞鸟"
}
elif choice == 4:
end = False #结束循环
break
Behavior.append(Mov)
elif levle == 2 and choose2 == 1:
end = True # 为了是结束选择
while True:
print("---------------------")
print("1.蝴蝶机夹胸")
print("2.哑铃上斜卧推")
print("3.器械上斜卧推胸")
print("4.退出")
print("---------------------")
choice = int(input("老铁你的选择是.....")) # 这里输入选择,为下面持续选择做准备
if choice == 1:
Mov = {
"name": "蝴蝶机夹胸"
}

elif choice == 2:
Mov = {
"name": "哑铃上斜卧推"
}
elif choice == 3:
Mov = {
"name": "器械上斜卧推胸"
}
elif choice == 4:
end = False # 结束循环
break
Behavior.append(Mov)

2.这是给客户看的添加动作菜单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#2.添加所喜好的动作
def append_YourMov(level):
print("----------------------")
print("终于等到你,老铁")
print("1.胸肌")
print("2.肩部")
print("3.腹肌")
print("4.二头")
print("5.背部")
print("6.腿部")
print("----------------------")
choose2 = int(input("请输入您的喜好:"))
if choose2 == 1:
Movement_menu(level,1)
elif choose2 == 2:
Movement_menu(level,2)
elif choose2 == 3:
Movement_menu(level,3)
elif choose2 == 4:
Movement_menu(level,4)
elif choose2 == 5:
Movement_menu(level,5)
elif choose2 == 6:
Movement_menu(level,6)

2.更新版本

……等待您的发掘…….

3.删除动作

1.原始版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#3.删除你想要去掉的运动动作
def Detele_Mov():
global Behavior #里面加有动作
i = 1 #定义这为对应的选择
print("------------------------")
for demo in Behavior:
print(i,"---",demo,end = " ")
i += 1 #需要自增
print("退出选择请在下方输入:4")
print("------------------------")
print()
while True:
choose3 = int(input("请输入您想要删除的动作:"))
if choose3 == 4:
return #结束函数
Behavior.pop(choose3-1)

2.更新版本

等待你的发掘…..

4.显示锻炼日志

1.原始版本

该函数作用是显示锻炼日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#4.该函数作用是显示锻炼日志
def show_allBehavior():
print(date) #这个是用来调用我在上面引用的api,如果报错请删掉这一行
print("正在加载您的绝美训练动作....")
nums = len(Behavior) #统计动作数量
if nums == 0:
print("快去添加你喜好的动作吧!")
print()
return #没有动作添加,所以直接退出该函数
for Mov in Behavior:
print(Mov)
print()
#这里的Behavior是那个动作集里的
print(content) #这个是用来调用我在上面引用的api,如果报错请删掉这一行

2.更新版本

等待你的发掘…..

5.代码的总结构

1.原始版本

提醒一句功能5.其实在main()函数调用的menu函数里实现了,就是直接使用内置函数exit()—-结束运程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
import requests
from bs4 import BeautifulSoup
from datetime import datetime
date=datetime.today().strftime("%Y年%m月%d日") #生成日期
url = 'http://open.iciba.com/dsapi/'
res = requests.get(url)
content_e = res.json()['content']
content_c = res.json()['note']
content = content_e + content_c
#content_t = res.json()['picture2']
url2=r"http://dict.cn"
resp = requests.get(url2)
soup = BeautifulSoup(resp.text,"html.parser")
htm=soup.find("div",class_="daily_sentence")
sen=htm.text.strip().split("\n\t")[2].strip()
"""
******************************
* @date---里面是今天的日期
* @content ---每日一句
* @sen---每日一句 content 和 sen 的语句是不同的,注意一下
*
* 上面是我用来调用api的,不要动,如果运行不了就删除
*
*******************************
"""
Users = [] #用户
Behavior = [] #锻炼动作
#打印出主菜单,供用户选择功能
def print_menu():
print(date) # 这个是用来调用我在上面引用的api,如果报错请删掉这一行 用来显示时间
print("-----------------------")
print("您的贴心撸铁友 v1.0")
print("1:添加个人用户")
print("2:添加动作")
print("3:删除动作")
print("4:显示锻炼日志")
print("5:结束运行")
print("-----------------------")
print(sen) #显示名人名言

#1.添加用户
def add_User():
print("哔哔哔---!正在加载中")
global Users #全局变量
name = input("请输入用户姓名:")
for person in Users:
if person["name"] == name:
print("该名称已被占用")
return
"""在这几个输入前面插入for 循环遍历是为了防止名称重复,并且重名时可以提前结束
防止做无用功"""
age = input("请输入用户年龄:")
security = input("请输入用户密码:")
level = int(input("请输入您现在的健身状态:(1.小白,2.大佬(请输入选项数字)):"))
user = {
"name":name,
"age":age,
"security":security,
"level": level
}
Users.append(user)
print("添加用户信息成功")
print(Users)
"""
这个是你添加动作的地方,模板我写好了
@level---代表等级的意思,我在这里设置了1.小白,2.大佬这两个等级,你在用户登录的时候就已经要求设置好了
@choose2---代表选择的动作,你可以看到那个函数 def append_YourMov(level): 这里面我已经设置好了choose2的范围1-6
"""
#2的内部调用函数,用来选择动作
def Movement_menu(levle,choose2):
#等级1是小白,等级二是大佬
global Behavior #全局数组
if levle == 1 and choose2 == 1:
end = True #为了是结束选择
while True:
print("---------------------")
print("1.双杠臂屈伸")
print("2.俯卧撑")
print("3.哑铃飞鸟")
print("4.退出")
print("---------------------")
choice = int(input("老铁你的选择是.....")) #这里输入选择,为下面持续选择做准备
if choice == 1:
Mov = {
"name": "双杠臂屈伸"
}
elif choice == 2:
Mov = {
"name": "俯卧撑"
}
elif choice == 3:
Mov = {
"name": "哑铃飞鸟"
}
elif choice == 4:
end = False #结束循环
break
Behavior.append(Mov)
elif levle == 2 and choose2 == 1:
end = True # 为了是结束选择
while True:
print("---------------------")
print("1.蝴蝶机夹胸")
print("2.哑铃上斜卧推")
print("3.器械上斜卧推胸")
print("4.退出")
print("---------------------")
choice = int(input("老铁你的选择是.....")) # 这里输入选择,为下面持续选择做准备
if choice == 1:
Mov = {
"name": "蝴蝶机夹胸"
}

elif choice == 2:
Mov = {
"name": "哑铃上斜卧推"
}
elif choice == 3:
Mov = {
"name": "器械上斜卧推胸"
}
elif choice == 4:
end = False # 结束循环
break
Behavior.append(Mov)

#2.添加所喜好的动作
def append_YourMov(level):
print("----------------------")
print("终于等到你,老铁")
print("1.胸肌")
print("2.肩部")
print("3.腹肌")
print("4.二头")
print("5.背部")
print("6.腿部")
print("----------------------")
choose2 = int(input("请输入您的喜好:"))
if choose2 == 1:
Movement_menu(level,1)
elif choose2 == 2:
Movement_menu(level,2)
elif choose2 == 3:
Movement_menu(level,3)
elif choose2 == 4:
Movement_menu(level,4)
elif choose2 == 5:
Movement_menu(level,5)
elif choose2 == 6:
Movement_menu(level,6)

#3.删除你想要去掉的运动动作
def Detele_Mov():
global Behavior #里面加有动作
i = 1 #定义这为对应的选择
print("------------------------")
for demo in Behavior:
print(i,"---",demo,end = " ")
i += 1 #需要自增
print("退出选择请在下方输入:4")
print("------------------------")
print()
while True:
choose3 = int(input("请输入您想要删除的动作:"))
if choose3 == 4:
return #结束函数
Behavior.pop(choose3-1)



#4.该函数作用是显示锻炼日志
def show_allBehavior():
print(date) #这个是用来调用我在上面引用的api,如果报错请删掉这一行
print("正在加载您的绝美训练动作....")
nums = len(Behavior) #统计动作数量
if nums == 0:
print("快去添加你喜好的动作吧!")
print()
return #没有动作添加,所以直接退出该函数
for Mov in Behavior:
print(Mov)
print()
#这里的Behavior是那个动作集里的
print(content) #这个是用来调用我在上面引用的api,如果报错请删掉这一行


def main():
"""实现主要的业务逻辑"""
while True:
print_menu()
choose = input("请输入你需要的功能:")
if choose == '1':
add_User()
elif choose == '2':
append_YourMov(Users[-1]["level"])
elif choose == '3':
Detele_Mov()
elif choose == '4':
show_allBehavior()
elif choose == '5':
exit()
elif choose == '6':
pass #可以自己拓展

#执行主函数代码,一run就开始调用该函数
if __name__ == '__main__':
main()

2.更新版本

等待你的发掘…..