Mô phỏng chức năng table trong máy tính CASIO

python

(Minh Quý Lê) #1

Mình tạo chương trình chạy table như trong máy casio mà không như mong muốn

a='5x^2-1/x^3+8x-1'
for i in range(len(a)-1):
    if a[i].isdigit() and a[i+1]=='x':
        a=a.replace('x', '*x')

print(a)

thì nó ra 5*x^2-1/*x^3+8*x-1
cái chỗ 1/*x ai giúp mình fix cho thành 1/x được không?


(Sherly1001) #2

Thế như bạn mong muốn là như thế nào.


(Minh Quý Lê) #4

mk ghi trên đó r đó bn. mk muốn chỗ 1/x^3 thành 1/x3 nhưng nó lại ra 1/*x3 rồi báo lỗi lun. Mk ko bít làm j nữa


(Sherly1001) #5

Methode replace(a, b) nó thay hết chuỗi a tìm được thành chuỗi b trong string nha bạn. Do vậy dù bạn có gọi 1 lần thì tất cả x đều bị thay bằng *x.

Bạn có thể tự define một hàm để thay đổi ký tự cho bạn. Code mình viết minh họa cho bạn có ý tưởng thôi. :sweat_smile:

def replace(a, index, x):
	return a[:index] + x + a[index + len(x) - 1:]

a = '5x^2-1/x^3+8x-1'

for i in range(len(a) - 1):
	if a[i].isdigit() and a[i + 1] == 'x':
		a = replace(a, i + 1, '*x')

print(a) # Output: 5*x^2-1/x^3+8*x-1

Đúng ý bạn chưa. :laughing:


(Minh Quý Lê) #6

chỗ a = replace(a, i + 1, ‘*x’) là sao z bạn. Mk ko hiểu lắm


(Sherly1001) #7

:point_down:

Trong chuỗi a, thay ký tự thứ i thành chuỗi *x. :slight_smile:


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?