201922904 Li Longwei 2019-2020-2「Pythonプログラミング」実験2レポート

20192204 2019-2020-2「Pythonプログラミング」実験2レポート

コース:「Pythonプログラミング」
クラス:1922
名前:Li Longwei
学生ID:20192204
実験教師:Wang Zhiqiang
実験日:2020年4月14日
必須/選択科目:パブリック選択科目

1.実験的な内容

完全なアプリケーションプログラム、加算、減算、乗算、除算などの完全な演算、およびその他の機能を設計して完成させます。
基本的な文法、判断文、ループ文、論理演算などの知識ポイントを調べます。

2.実験プロセスと結果

この実験で設計されたコンピュータは、加算、減算、乗算と除算、平方根演算、指の対数と三角関数の混合演算を実行できます

ユーザーが入力した文字列型の式をeval()関数を使用してコマンド形式に変換します

while-trueループとifステートメントを使用して操作を繰り返し可能にする

数学モジュールをインポートすると、上部に数式の入力方法が表示され、
ユーザーはフォーマットに従って計算する式を入力して、より複雑な混合演算を計算できます。
コードスクリーンショット

コード実行結果

ソースコード:

print("python计算器,要计算的表达式请自己手动输入")
print("支持加减乘除、平方根运算、指对数及三角函数的混合运算,指对数及三角函数运算的表达式的输入要严格采用下面给出的形式")
print("要计算a的平方根请键入”math.sqrt(a)“")
print("要计算a的b次方请键入“math.pow(a,b)”")
print("要计算log以a为底b的对数请键入“math.loga(b)”")
print("要计算tan(a)请键入”math.tan(a)“")
print("要计算sin(a)请键入“math.sin(a)”")
print("要计算cos(a)请键入”math.cos(a)“")
print("数学中的Π/n可用”math.pi/n“表示")
while True:
    expression = input("在此输入要计算的表达式:") #用户手动输入想要计算的表达式
    result = eval(expression)    #用eval()函数将用户手动输入的字符串类型的数学表达式转化为命令,可以节省掉大篇幅的代码
    print(str(expression)+'='+str(result))
    a = int(input("输入数字1继续计算,输入数字0中止运算:"))
    if a == 0:
        print("感谢您的使用,再见^_^")
        break;

コードのコードクラウドリンク:https : //gitee.com/king_li_long/python/commit/3eeb5057233640b995f25057a5d1fe2ca213d2fa

3.実験および解決プロセス中に発生した問題

  • 質問:ユーザーが計算したい操作のタイプを判別するために複数のif ... elif ...デフォルトステートメントを使用しようとしましたが、関連するコードは非常に冗長であり、複合操作を効果的に実行できません
  • 解決策:eval()関数を使用して、ユーザーが入力した文字列をコマンドに直接変換します。これにより、コードが簡素化されるだけでなく、操作の効率も向上します

その他(感情、思考など)

理解度:Pythonの一部の関数は本当に強力で、多くの問題を単純化できます

参考文献

eval()pythonはどのように文字列を実行可能なコマンドに変換しますか?リンク:https : //blog.csdn.net/weixin_34128237/article/details/91933587

おすすめ

転載: www.cnblogs.com/kinglilong/p/12701081.html