iT邦幫忙

0

python for loop 一問

  • 分享至 

  • xImage

請問一下如果要用python 表達以下這個for loop 要怎樣寫, 謝謝.

for (int i = start, j = 8 * (cnt - 1); i < start + cnt; ++i, j -= 8)
{
    tmp = arr[i] & 0xff;
    result = (result | tmp << j);
}
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
nitekat
iT邦新手 5 級 ‧ 2022-03-10 11:02:11

如果要照原本語意的話可以這樣寫:

for i, j in zip(range(start, start + cnt), range(8 * (cnt - 1), -1, -8)):
    tmp = arr[i] & 0xFF
    result = result | tmp << j

但我會比較傾向寫成這樣,感覺可讀性會好些:

i = start
j = 8 * (cnt - 1)
for _ in range(cnt):
    tmp = arr[i] & 0xFF
    result = result | tmp << j
    i += 1
    j -= 8

我要發表回答

立即登入回答