1

私は Python でまったくプログラミングしていないので、私のコードを許してください。特定のバイト数の後に終了する印刷関数を作成しようとしています。これは私がこれまでに行ったことです:

   def print_stuff(stuff, size):
    i = 0
    data = ""
    while i < size:
            if stuff[i]=='\0':
                    data += " "
            else:
                    data += stuff[i]
    print data

しかし、printf_stuff(data, 5050) を実行しようとすると、Python は何も出力せず、フリーズしたように見えます。私は何を間違っていますか?

4

4 に答える 4

6

の値をインクリメントしていませんi

于 2012-06-23T20:05:58.153 に答える
3

これは、文字列スライスと置換で行うことができます。

def print_stuff(stuff, size):
    data = stuff[:size]             # Slice it up to the size that you want.
    data = data.replace('\0', ' ')  # Replace all occurrences of \0 with a space.
    print data
于 2012-06-23T20:14:26.197 に答える
1

ええ、おそらく条件文の後に i += 1 を入れる必要があります。

def print_stuff(stuff, size):
  i = 0
  data = ""
  while i < size:
    if stuff[i]=='\0':
      data += " "
    else:
      data += stuff[i]
    i += 1                        # Here's your missing line.
  print data
于 2012-06-23T20:13:19.687 に答える
0

i変数をインクリメントしていません

于 2012-06-23T20:06:33.243 に答える