使用python正则表达式编写一个计算器方法
#!/usr/bin/evn python
import re
def deal_negative_issue(calc_list):
new_calc_list=[] #定义一个新的空列表,后面筛选完成后将数据放入新列表中
for index,item in enumerate(calc_list):
if item.strip().endswith("*") or item.strip().endswith("/"): #挑选出以乘号或除号结尾的字符串
new_calc_list.append("%s-%s"%(calc_list[index],calc_list[index+1])) #拼接字符串 处理类似2*5/-3
# elif ("*" or "/") in item: #找出列表中的有乘除的选项,这种写法我试了好像只匹配*在,单独40/5这种匹配不出来
elif ("/") in item or ("*") in item:
print(item)
new_calc_list.append(item)
print("new_calc_ist",new_calc_list)
return new_calc_list
def deal_unusual_issue(formula):
formula = formula.replace("++","+")
formula = formula.replace("+-", "-")
formula = formula.replace("-+", "-")
formula = formula.replace("--", "+")
formula = formula.replace("- -", "+")
return formula
# def addition_and_subtraction(formula):
# sub_calc_list = re.split("[+-]",formula)
# sub_operator_list = re.findall("[+-]",formula)
# print(type(sub_calc_list), sub_operator_list)
# totle_res = None
# for index,i in enumerate(sub_calc_list):
# if totle_res: #sub_res为真,表示这不是第一次循环
# if sub_operator_list[index-1]=="+": #通过sub_operator_list中的index判断到底是加法还是减法
# totle_res += float(i)
# else:
# totle_res -= float(i)
# else:
# sub_res = float(i)
# print(totle_res)
def calculating(formula):
print("运算",formula)
calc_list = re.split("[+-]",formula) #通过+-符号将各个乘除运算分隔出来
calc_list = deal_negative_issue(calc_list)
print(calc_list)
for item in calc_list:
sub_calc_list = re.split("[*/]",item)
sub_operator_list = re.findall("[*/]",item) #将乘号除号通过列表方式分隔出来
print(sub_calc_list,sub_operator_list)
sub_res = None
for index,i in enumerate(sub_calc_list):
if sub_res: #sub_res为真,表示这不是第一次循环
if sub_operator_list[index-1]=="*": #通过sub_operator_list中的index判断到底是加法还是减法,
sub_res *= float(i)
else:
sub_res /= float(i)
else:
sub_res = float(i)
print("[%s]="%item,sub_res)
formula = formula.replace(item,str(sub_res))
formula = deal_unusual_issue(formula)
print(formula)
#计算+-法
totle_calc_list = re.split("[+-]", formula)
totle_operator_list = re.findall("[+-]", formula) # 将乘号除号通过列表方式分隔出来
print(totle_calc_list, totle_operator_list)
totle_res = None
for index,item in enumerate(totle_calc_list):
if totle_res: #sub_res为真,表示这不是第一次循环
if totle_operator_list[index-1]=="+": #通过sub_operator_list中的index判断到底是加法还是减法,
totle_res += float(item)
else:
totle_res -= float(item)
else:
totle_res = float(item)
# return formula
print("[结果]=", totle_res)
return totle_res
def calc(formula):
parentheses_flag = True
calc_res = None
while parentheses_flag:
m = re.search("\([^()]*\)",formula) #找出最底层的括号,一个一个找
print(m)
if m:
# print(type(m.group()))
subformula = m.group().strip("()") #把找出来的括号剥离
subres = calculating(subformula)
formula = formula.replace(m.group(),str(subres))
else:
print("没括号了")
print("最终结果为",calculating(formula))
parentheses_flag = False
if name == 'main':
res = calc("1 - 2 * ( (60-30 +(9-2*5/-3 + 7 /3*99/4*2998 +10 * 568/14 ) * (40/5)) - (4*3)/ (16-3*2) )")
#res = calc("2 * (40/5)")
#备注:-40/5功能没有实现
Atas ialah kandungan terperinci 使用python正则表达式编写一个计算器方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Ekspresi biasa Python ialah alat padanan yang berkuasa yang boleh membantu kami mengenal pasti dan menggantikan teks, gaya dan format dengan cepat dalam pemprosesan fail Word. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pemprosesan fail Word. 1. Pasang perpustakaan Python-docx Python-docx ialah perpustakaan berfungsi untuk memproses dokumen Word dalam Python Anda boleh menggunakannya untuk membaca, mengubah suai, mencipta dan menyimpan dokumen Word dengan cepat. Sebelum menggunakan Python-docx, anda perlu memastikan

Ungkapan biasa Python ialah alat berkuasa yang membantu kami melakukan pemadanan dan carian yang tepat dan cekap dalam data teks. Ungkapan biasa juga amat berguna dalam pemprosesan nombor dan jumlah, dan boleh mencari dan mengekstrak maklumat nombor dan jumlah dengan tepat. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk memproses nombor dan jumlah, membantu pembaca menangani tugas pemprosesan data sebenar dengan lebih baik. 1. Nombor proses 1. Padankan integer dan nombor titik terapung Dalam ungkapan biasa, untuk memadankan integer dan nombor titik terapung, anda boleh menggunakan d+ untuk padanan.

Dalam orkestrasi kontena, kita selalunya perlu menapis, memadankan dan menggantikan beberapa maklumat. Python menyediakan ungkapan biasa, alat berkuasa yang boleh membantu kami menyelesaikan operasi ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk orkestrasi kontena, termasuk pengetahuan asas ungkapan biasa, cara menggunakan modul Pythonre dan beberapa aplikasi ungkapan biasa biasa. 1. Pengetahuan asas tentang ungkapan biasa Ungkapan biasa (RegularExpression) merujuk kepada corak teks, digunakan

Ungkapan biasa Python ialah alat yang berkuasa untuk memproses data teks. Dalam pemprosesan bahasa semula jadi, pembahagian perkataan adalah tugas penting, yang memisahkan teks kepada perkataan individu. Dalam Python, kita boleh menggunakan ungkapan biasa untuk menyelesaikan tugas pembahagian perkataan. Berikut akan menggunakan Python3 sebagai contoh untuk memperkenalkan cara menggunakan ungkapan biasa untuk pembahagian perkataan. Import modul semula Modul semula ialah modul ekspresi biasa terbina dalam Python Anda perlu mengimport modul terlebih dahulu. teks definisi import

Dalam pengekodan harian, kita sering perlu mengubah suai dan membina semula kod untuk meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Salah satu alat penting ialah ungkapan biasa. Artikel ini akan memperkenalkan beberapa teknik biasa tentang cara menggunakan ungkapan biasa Python untuk pemfaktoran semula kod. 1. Cari dan Ganti Salah satu fungsi ungkapan biasa yang paling biasa digunakan ialah cari dan ganti. Katakan kita perlu menggantikan semua kenyataan cetakan dalam kod dengan kenyataan log. Kita boleh menggunakan ungkapan biasa berikut untuk mencarinya: prints*((.

Python ialah bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dengan set perpustakaan dan alatan yang kaya yang menjadikan pengekstrakan kandungan lebih mudah dan lebih cekap. Antaranya, ungkapan biasa adalah alat yang sangat penting, dan Python menyediakan modul semula untuk menggunakan ungkapan biasa untuk pengekstrakan kandungan. Artikel ini akan memperkenalkan anda kepada langkah khusus tentang cara menggunakan ungkapan biasa Python untuk pengekstrakan kandungan. 1. Fahami sintaks asas ungkapan biasa Sebelum menggunakan ungkapan biasa Python untuk pengekstrakan kandungan, anda perlu memahami sintaks asas ungkapan biasa.

Ekspresi biasa Python ialah alat pemprosesan rentetan berdasarkan padanan corak, yang boleh membantu kami mengekstrak maklumat yang diperlukan daripada teks dengan cepat dan cekap. Dalam struktur data dan algoritma, ungkapan biasa boleh digunakan untuk melaksanakan pemadanan teks, penggantian, pembahagian dan fungsi lain, memberikan sokongan yang lebih berkuasa untuk pengaturcaraan kami. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma. 1. Pengetahuan asas ungkapan biasa Sebelum bermula, mari kita fahami beberapa pengetahuan asas ungkapan biasa: Set aksara: diwakili oleh kurungan segi empat sama,

Dalam pembangunan perisian, estetika kod dan pengalaman pengguna sering diabaikan, yang membawa kepada banyak masalah perisian dalam penggunaan sebenar. Python, sebagai bahasa pengaturcaraan yang berkuasa, menyediakan ungkapan biasa sebagai alat yang berkuasa untuk membantu kami menyelesaikan masalah ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk estetika kod dan pengalaman pengguna. 1. Pengenalan kepada ungkapan biasa Python Ungkapan biasa ialah bahasa yang menerangkan corak teks dan boleh digunakan untuk memadankan, mencari, menggantikan dan memisahkan teks. Modul semula Python menyediakan
