2017-12-04 4 views
1

数字の最小の乗数を見つける簡単なプログラムを作成しています。しかし、リストされた結果から最後の "*"を削除する方法が見つかりません。私は間違って何をしていますか?助けてください。私が欲しいpythonで印刷されたリストから最後の文字を削除/削除する方法

24=2*2*2*3* 

結果:

24=2*2*2*3 

を、私は、\ bを試みたが、9月= ""ではなく終わりの="" を使用しようとした私が得た

num = int(input("write number: ")) 
print(num, end = "=") 
div = 2 
while num > 1: 
    if num % div == 0: 
     num = num/div 
     print(div, end = "*") 
    else: 
     div += 1 

結果[:-1]しかし、これは動作しません、または私は間違っているだけです。 ありがとうございます。

答えて

0

一つのオプションあなたがいる場合にのみ*を印刷したいので、 "*"

num = num/div 
if num == 1 : 
    print(div) 
else : 
    print(div, end = "*") 

を印刷する前にかどうかNUM = 1をチェックするだけですdivが1より大きい場合は、さらに乗数があります。

4

除数のリストを作成し、連結リストを印刷することができます。

num = int(input("write number: ")) 
print(num, end = "=") 
div = 2 
out = [] 
while num > 1: 
    if num % div == 0: 
     num = num/div 
     out.append(div) 
    else: 
     div += 1 
print('*'.join(map(str,out))) 

テスト:

write number: 24 
24=2*2*2*3 
0

連結することができます

s += div + "*" 

そして、ちょうど最後のシンボル印刷されません後: - >との理由

print(s[:-1]) 

をしかし、Pythonの文字列型で不変タイプですので、私の心に、それは悪い決断だ検索結果を食べましたそれは毎回 "s + = div +" * ""新しい変数 "s"が作成されます。

-1
import sys 
sys.stdout.write('\b \b') ##at the end of the program 

結果:

write number: 24 
24=2*2*2*3 
関連する問題