PYTHON 程序问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PYTHON 程序问题?相关的知识,希望对你有一定的参考价值。

有10组数据(每组数据带数字行数在5-9行之间)(在下面展示了3组),
每组数据为了方便整体输出和前面的程序,我把他们弄成了string:(下面是第一组数据
fatloss = "\nGym workout for fat loss\n\nPlate thrusters (15 reps x 3 sets)\nMountain climbers (20 reps x 3 sets)\nBox jumps (10 reps x 3 sets)\nLounges (10 reps x 3 sets)\nRenegade rows (10 reps x 3 sets)\nPress ups (15 reps x 3 sets)\nTreadmill (15 mins x 2 sets)\nSupermans (15 reps x 3 sets)\nCrunches (20 reps x 3 sets)"

只需要输出其中任意一组(根据之前的输入来决定输出谁)
主要问题:其中每组数据(每个string)的每一行的标红项,都需要被提取出来,并带入到我的计算def中的x进行计算,再用计算结果(ans)分别替换掉一开始的标红数据,得到一个被输出的str
不能用的:for loop, lambda functions, classes, all standard imported modules except math.

def answer(x,a): #Calculet the extraction of reps/mins (x for reps/mins,a for age,ans for final reps/mins
if 60 < a <= 65:
ans = x*(1-1/100*(a-60))
elif a <= 75:
ans = x*(1-5/100-2/100*(a-65))
elif a <= 80:
ans = x*(1-25/100-3/100*(a-75))
if a > 80 or 40/100+4/100*(a-80) > 80 :
ans = min((40/100+4/100 *(a-80)),80)
return ans
#1
Gym workout for fat loss

Plate thrusters (15 reps x 3 sets)
Mountain climbers (20 reps x 3 sets)
Box jumps (10 reps x 3 sets)
Lunges (10 reps x 3 sets)
Renegade rows (10 reps x 3 sets)
Press ups (15 reps x 3 sets)
Treadmill (10 mins x 3 sets)
Supermans (10 reps x 3 sets)
Crunches (10 reps x 3 sets)

#2------------------------------------------------------
Gym workout for stretch and relax

Quad stretchs (2 mins x 3 sets)
Hamstring stretchs (2 mins x 3 sets)
Chest and shoulder stretchs (2 mins x 2 sets)
Upper back stretchs (3 mins x 2 sets)
Biceps stretchs (2 mins x 2 sets)
Triceps stretchs (2 mins x 3 sets)
Hip flexors (2 mins x 3 sets)
Calf stretchs (2 mins x 3 sets)
Lower back stretchs (2 mins x 3 sets)

#3------------------------------------------------------
Gym workout for high-intensity exercises

Jumping jacks (20 reps x 4 sets)
Sprints (20 reps x 3 sets)
Mountain climbers (20 reps x 4 sets)
Squat jumps (20 reps x 4 sets)
Lunges (20 reps x 3 sets)
Crunches (20 reps x 3 sets)
Treadmill (15 mins x 2 sets)
Side planks (15 reps x 3 sets)
Burpees (15 reps x 3 sets)

参考技术A import re
fatloss = "\nGym workout for fat loss\n\nPlate thrusters (15 reps x 3 sets)\nMountain climbers (20 reps x 3 sets)\nBox jumps (10 reps x 3 sets)\nLounges (10 reps x 3 sets)\nRenegade rows (10 reps x 3 sets)\nPress ups (15 reps x 3 sets)\nTreadmill (15 mins x 2 sets)\nSupermans (15 reps x 3 sets)\nCrunches (20 reps x 3 sets)"
# fatloss.split('\n')
# print(fatloss)
find_all = re.findall(r'.*?[(]',fatloss)
exercise = []
for i in find_all:
exercise.append(i.replace(' (','').lower())
# print(exercise)
num = re.findall("\d+",fatloss)
reps_list = []
sets_list = []
for i in range(len(num)):
if i%2 == 0:
reps_list.append(int(num[i]))
else:
sets_list.append(int(num[i]))
x_list = []
for i in range(len(reps_list)):
x_list.append(reps_list[i] * sets_list[i])
# print(x_list)
x_dict = dict(zip(exercise,x_list))
# print(x_dict)
def answer(x,a):
if 60 < a <= 65:
ans = x*(1-1/100*(a-60))
elif a <= 75:
ans = x*(1-5/100-2/100*(a-65))
elif a <= 80:
ans = x*(1-25/100-3/100*(a-75))
if a > 80 or 40/100+4/100*(a-80) > 80 :
ans = min((40/100+4/100 *(a-80)),80)
return ans
e = input('enter the exercise you want to do:').lower()
x = x_dict.get(e)
a = int(input('enter your age:'))
ans = answer(x,a)
feedback = f'The extraction of e.title() is ans/mins.'
print(feedback)
不确定是不是你要的东西,但姑且可以当参考吧。

python爬虫程序有问题

代码如下 问题应该出在gethtml(url)函数,gethtml(url)的返回值是<function gethtml at 0x0000000003476F98>。请问应该怎么修改?
import re
import urllib

def gethtml(url):
page = urllib.urlopen(url)
html = page.read()
return html

def getpicture(html):
reg = r'src=(.*?\.jpg)'
picturere = re.compile(reg)
picturelist = re.findall(picturere,html)
x=0
for pictureurl in picturelist:
urllib.urlretrieve(pictureurl,'%s.jpg' %x)
x+=1
url = raw_input("url:")
增加一句
html = gethtml(url)
这样修改之后,能运行一段时间,然后会报错:
File "F:\Program Files (x86)\python\Lib\urllib.py", line 477, in open_local_file
raise IOError(e.errno, e.strerror, e.filename)
标注的代码为:
raise IOError(e.errno, e.strerror, e.filename)
这是为什么呢?

IOError就说明你抓取的URL连接失效,在getpicture里加一个try except,无法打开链接时,

没有办法,继续执行下一个Url

import sys
        try:
            urllib.urlretrieve(pictureurl,'%s.jpg' %x)
        except:
            print "Unexpected error:", sys.exc_info()[0]

追问

我改成这样了,的确能检测到失效链接,但是还是会报错

追答

放的位置不对。。。

你错误的地方是urllib.urlretrieve(pictureurl,'%s.jpg' %x)

所以把这一行改为

        try:
            urllib.urlretrieve(pictureurl,'%s.jpg' %x)
        except:
            print "Unexpected error:", sys.exc_info()[0]

参考技术A 帮你慢慢看~~~追问

我在想会不会是那个图片文件的连接失效了,才会出错。

以上是关于PYTHON 程序问题?的主要内容,如果未能解决你的问题,请参考以下文章

Python程序员面试必备常用问题答案及解析

PYTHON 程序问题?

python爬虫程序有问题

Python程序员面试,这些问题你必须提前准备!

分析调用并行外部程序的 Python 程序

谈 Python 程序和 C 程序的整合 (转载)