出産前後の痔にはご注意!

Pythonでコンソールに出力するのは、printでよいのですが、
クリアするにはどうすればよいでしょうか?
また、コンソールをバックスペースで戻るようなこともしたいです。
因みに print "\b"はうまくいかなかったような・・・

A 回答 (1件)

ちょっと調べたら、


・os.system("clear") (Windowsのコマンドプロンプトなら os.system("CLS") )と外部コマンドを呼び出す
・ANSIエスケープシーケンスを出力する
・cursesライブラリを使う

なかには
・W32APIを使う
http://d.hatena.ne.jp/m-hiyama/20091222/1261444695
というものもあり、一筋縄にはいかないようです。

画面消去が本当に必要かどうか、検討しなおしてみては?
文字の表示位置が重要なら、cursesを使うことになると思います。

なお、"\b"によるバックスペースは私のところではちゃんと動作しています
>>> print "ab\bc"
ac

使用している端末がバックスペースに対応していない、ということはありませんか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q[python] 文字列を変数名として使いたい

すいません教えて下さい。

pythonで以下の変数をセットしています。

aaa = 'hensu_name'

aaaで指定した'hensu_name'に対して値を入れたい場合は
どのように実装すればよいでしょうか?
(aaaに入れたstringを変数名にしたい)

よろしくお願いします。

Aベストアンサー

exec関数を使って文字列をコードとして実行すれば、それっぽいことができるように思います。
あまりいい例を思いつかないですが、以下のような感じでしょうか?

aaa = "hensu_name"
src = aaa + " = 'hello'" #srcの中身は、"hensu_name = 'hello'"

exec(src)
print hensu_name #hello が表示される

src = "print " + aaa #srcの中身は、"print hensu_name"
exec(src) #hello が表示される


ただ、No.1の方がおっしゃっているように、あまりお勧めな方法ではありません。
文字列をコードとして実行してしまうので、少々危険な側面もあります。
悪意のあるコードを含む文字列を実行してしまうとか…。

Qエクセルで計算すると2.43E-19などと表示される。Eとは何ですか?

よろしくお願いします。
エクセルの回帰分析をすると有意水準で2.43E-19などと表示されますが
Eとは何でしょうか?

また、回帰分析の数字の意味が良く分からないのですが、
皆さんは独学されましたか?それとも講座などをうけたのでしょうか?

回帰分析でR2(決定係数)しかみていないのですが
どうすれば回帰分析が分かるようになるのでしょうか?
本を読んだのですがいまいち難しくて分かりません。
教えてください。
よろしくお願いします。

Aベストアンサー

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるための指数表記のことですよ。
・よって、『2.43E-19』とは?
 2.43×1/(10の19乗)で、
 2.43×1/10000000000000000000となり、
 2.43×0.0000000000000000001だから、
 0.000000000000000000243という数値を意味します。

補足:
・E+数値は 10、100、1000 という大きい数を表します。
・E-数値は 0.1、0.01、0.001 という小さい数を表します。
・数学では『2.43×10』の次に、小さい数字で上に『19』と表示します。→http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
・最後に『回帰分析』とは何?下の『参考URL』をどうぞ。→『数学』カテゴリで質問してみては?

参考URL:http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるた...続きを読む

Q戻り値の意味がわかりません…

戻り値とはどういう値なのか簡単な例文で教えて頂けますか?

Aベストアンサー

バカくさいかもしれませんが簡単な例えをだしてみます。
2人の子供がいて、名前をそれぞれ太郎・花子にしましょう。この2人の子にある役割を決めます。
・花子は飴をもらうと、それをチョコにする役割。(できるかは別として)
・太郎は花子を呼んで飴をあげる役割。

さてこの例では太郎の飴が引数(ひきすう)になり
花子のチョコが戻り値になります。

このイメージを元に次の文を読んでみてください。

「プログラム中の関数やサブルーチンが処理を終了し
呼び出し元に処理の結果として返す値。」

これが戻り値の正しい定義です。
そのほかにはNo1さんのような役割指すときも、それを「戻り値」と呼んだりします。

Qapt-get install ****** でinstallしたものをuninstallするには?

御世話になります。
vncserverだけをinstallするつもりが
誤って
apt-get install vncとうってしまいました。
これをuninstallしたいのですが
どのようにすればよろしいでしょうか?

教えて下さい。

Aベストアンサー

# apt-get remove パッケージ名
では、設定ファイルは削除されずに残ります。

完全に削除するときは、
# apt-get --purge remove パッケージ名
です。

Qpythonのnumpyでの列(縦)ベクトルの書き方

pythonで行(横)ベクトルを作りたいときは、
a = np.array([[1,2,3]])すれば、    ①
a.shapeで
(1, 3)
の横ベクトルを作れます。
これを列(縦)ベクトルにしたい場合には、
b = a.transpose()
又は
b = a.T
で(3, 1)の縦ベクトルに変換されるようですが、
縦ベクトルを①のように直接書く方法とかはあるのでしょうか?

Aベストアンサー

以下でどうでしょうか。

In [6]: c = np.array([[1],[2],[3]])

In [7]: c.shape
Out[7]: (3, 1)

QVB上で実行中の無限ループの止め方

今まで、CUIベースのBASICでのプログラムの経験はあるのですが
Visual系のBASICは初心者です。
原因はわかっているのでプログラムの修正はできるのですが
VB上でコンパイルして実行したときに無限ループに陥ってしまって
どうにもプログラムをとめられなくなります。
そんなことがないように、実行前に全てのプロジェクトを保存して
いますので、そんなに実害はないのですが、どうすればとめられるのでしょう・・
今現在は、タスクマネージャーから強制終了させています。

Aベストアンサー

無限ループの一番内側に
DoEvents
を入れておくと、ウィンドウ切替え->デバッガ終了操作が出来ますよ

危なそうなとこにも入れておくと、何かと安心です。

QMacターミナルで実行中のプログラムを中止するには?

Macのターミナルでプログラムを走らせているとき、
実行中のプログラムを一時停止したり中断・終了させるには
どうしたらいいでしょう?

Unixだと、Control+s とか Control +c とかでできますよね。
Macだと、それではできないみたいなんです。

基本的な質問ですみませんが、どなたか教えていただけないでしょうか。

Aベストアンサー

ごく普通にControl + Cで中断できますよ。

もしかしてControlキーをcommandやcapslockと押し間違えているとかいうことはありませんか?

Q「x86」と「amd64」の違い

CPUの種類で「x86」と「amd64」がありますが、その違いについて教えてください。

先日、AMDプロセッサのマシンにUbuntu8.04のAMD版をインストールしようとしたところ、「AMDではありません」のようなエラーが出てインストールできませんでした。そこでx86版を試してみたら正常にインストールできました。
しかしインストール直後から動作が不安定で、高い確率でフリーズします。
特に重要な設定を変更した訳でもなく、マシンの性能が悪いとも思えず、唯一思い当たる節がインストールしたUbuntuが「x86」版か「amd64」版かくらいです。

私の認識では、
  x86 … Intel系
  amd64 … AMD系
と思っているのですが、もっと複雑なのでしょうか?
またUbuntuを不安定する原因が何かあれば教えてください。
よろしくお願いします。

●環境
CPU:AMD Athlon 64, 2200MHz 3500+
メモリ:2G
HDD:160G × 2

Aベストアンサー

AMD64はお考えの通りAMD CPUが元になってできた用語で、ごくごく大雑把に言うと
x86→Intel,AMD問わず32ビット版のプログラム
AMD64→Intel,AMD問わず64ビット版のプログラム
となります。64ビット対応はIntelではPentium4の末期から、AMDではAthlon64からになります。

AMD64ではありません~というメッセージですが、当方Ubuntuを使ったことはないので想像になりますが、BIOSに64ビット命令の有効無効を指定するような項目はないでしょうか?
確か古いマザーにはそういうスイッチが設定されているという話を聞いたような…(かなり自信なし)

Qstrcpy関数で文字型変数へのポインタを指定するとエラーになる

(1)のコードは問題なく動作するのですが、(2)の方はバスエラーとなります。どちらもも引数としてアドレスを渡しているのに何が違うのでしょうか?

(1)
char ch[]="aaaa";
strcpy(ch, "bbbb");
printf("%s\n", ch);
(2)
char *chp="xxxx";
strcpy(chp, "yyyy");
printf("%s\n", chp);

Aベストアンサー

バスエラーの原因は#1で出ている通りですが、環境によっては文字列リテラルを書き換え可能領域に配置するものがあり、そのような環境では#4で言われているようにバスエラーを起こさずに通ってしまいます。

> char *chp="xxxx";
> chp="yyyy";

これがエラーにならないのは「文字列chpの中身を書き換えている」のではなく、「ポインタ変数chpが指す先を"xxxx"から"yyyy"に変更している」からです。
ポインタの代入とstrcpy()は等価動作ではありません。

Qpython print文のエラー

こんにちは。
今日、リカバリしたばかりのPCに、python3.1をインストールしコマンドラインモードからテスト代わりに

「print "Hello world!"」

と打って実行してみました。
しかし、「SyntaxError: invalid syntax」とエラーが出ます。
「print "Hello world!"」の最後の「"」でエラーが発生していると出たのですが、どういうことなのでしょうか。

pythonは始めたばかりで、参考書で最初に書いてあったのを実行してみたのですが…。しょっぱなからこれだと残念です。私の環境が悪いのかも知れませんが。

プログラミング経験はC、C++で中規模のアプリケーション、2Dゲームを作成した程度です。

お願いします。

Aベストアンサー

現時点でのPythonの書籍はおそらくver2.x用だと思いますが、Python3からいくつか文法が変更されています。
http://docs.python.org/3.0/whatsnew/3.0.html

printは、以前は構文でしたが、関数になったので、カッコが必須です。
print("Hello world!")


人気Q&Aランキング