| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1969 人关注过本帖
标题:请高手帮忙看一下
只看楼主 加入收藏
imzaghi333
Rank: 2
来 自:江苏昆山
等 级:论坛游民
帖 子:34
专家分:61
注 册:2013-9-7
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
请高手帮忙看一下
这是Python核心编程上的一道题:
#5-6.算术。写一个计算器程序。你的代码可以接受这样的表达式,两个操作数加一个操作符:N1操作符N2。
# 其中N1和N2为整型或浮点型,操作符可以是+、-、*、/、%、**,分别表示加法、减法、乘法、整型除、取余和幂运算。
# 计算这个表达式的结果,然后显示出来。提示:可以使用字符串方法split(),但不可以使用内建函数eval()。

#这是我写的
def add(x,y):
    return x+y

def sub(x,y):
    return x-y

def mul(x,y):
    return x*y

def div(x,y):
    if y == 0:
        print "ERROR!"
    else:
        return float(x/y)

def power(x,y):
    result = 1
    for i in range(1,y+1):
        result *= x
    return result

print "Enter expression(like: 23*32)"
exp = raw_input("> ")
if "+" in exp:
    list1 = exp.split('+')
    print add(int(list1[0]),int(list1[1]))

elif "-" in exp:
    list2 = exp.split('-')
    print sub(int(list2[0]),int(list2[1]))

elif "*" in exp:
    list3 = exp.split('*')
    print mul(int(list3[0]),int(list3[1]))

elif "/" in exp:
    list4 = exp.split('/')
    print div(int(list4[0]),int(list4[1]))

elif "^" in exp:
    list5 = exp.split('^')
    print power(int(list5[0]),int(list5[1]))
else:
    print "Invalid expression"

题目上的要求幂计算表达式要写成 3**5,但我没有搞定,只能写成 3^5,请提示一下怎样才可以实现 3**5?
2016-10-06 22:30
Valenciax
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:11
帖 子:340
专家分:2482
注 册:2016-5-15
收藏
得分:20 
代码可以再精简些,这里只作了小许修改


elif "^" in exp:
    list5 = exp.split('^')
    print power(int(list5[0]),int(list5[1]))

改为

elif "**" in exp:
    list5=exp.replace('**','*')
    list5 = list5.split('*')
    print power(int(list5[0]),int(list5[1]))

且放在 elif "*" in exp: 之前
2016-10-07 15:32
imzaghi333
Rank: 2
来 自:江苏昆山
等 级:论坛游民
帖 子:34
专家分:61
注 册:2013-9-7
收藏
得分:0 
谢谢,按照您的方法就对了。
原来还有replace()这个方法。

非专业的C语言爱好者.正在学习中..........
2016-10-07 20:26
快速回复:请高手帮忙看一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014672 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved