默默無名 发表于 2018-6-2 14:52:46

零基礎python第015講課後練習動動手字符串小問題

本帖最后由 默默無名 于 2018-6-2 14:52 编辑

我的程式碼:
num = input('請輸入一個整數(輸入Q結束程序):')
while 1:
    if num == 'Q':
      break
    else:
      num1 = int(num)
      ans1 = '{0} {1} -> {2}'.format('十進制 -> 十六進制 :', num, '%#x' % num1)
      ans2 = '{0} {1} -> {2}'.format('十進制 -> 八進制 :', num, '%#o' % num1)
      ans3 = '{0} {1} -> {2}'.format('十進制 -> 二進制 :', num, bin(num1))
      print(ans1, '\n', ans2, '\n', ans3)
      break
這是打印的結果:
十進制 -> 十六進制 : 108 -> 0x6c
十進制 -> 八進制 : 108 -> 0o154
十進制 -> 二進制 : 108 -> 0b1101100
1.為什麼前面會有空格?
2.有沒有只用一次print()打印結果,然侯前面可以不出現空格的方法?

num = input('請輸入一個整數(輸入Q結束程序):')
while 1:
    if num == 'Q':
      break
    else:
      num1 = int(num)
      ans1 = '十進制 -> 十六進制:', num, '->', '%#x' % num1
      ans2 = '十進制 -> 八進制:', num, '->', '%#o' % num1
      ans3 = '十進制 -> 二進制:'+ num + '->' + bin(num1)
      print(ans1, '\n', ans2, '\n', ans3)
      break
這是打印的結果:
('十進制 -> 十六進制:', '108', '->', '0x6c')
('十進制 -> 八進制:', '108', '->', '0o154')
十進制 -> 二進制:108->0b1101100

3.為什麼用逗號隔開跟使用+號所打印的結果不一樣?
4.如果我的寫法有問題也可以糾正我,麻煩各位大神了。 {:10_257:}

BngThea 发表于 2018-6-2 15:15:35

1因为用逗号会移动添加空格作为分割
2将要打印的数据放到一个字符串
3用逗号表示是一个元祖,加号是一个字符串

冬雪雪冬 发表于 2018-6-2 15:23:46

1.為什麼前面會有空格? -- print函数缺省在每个用逗号隔开的参数之间加上一个空格输出。
2.有沒有只用一次print()打印結果,然侯前面可以不出現空格的方法?--在print函数加上sep参数就可以把空格改为其他的。
print(ans1, '\n', ans2, '\n', ans3, sep = '')
3.為什麼用逗號隔開跟使用+號所打印的結果不一樣?-- 加号是把两个字符串合并为一个了,不是print的两个参数了,就不会在中间有空格了。
4.如果我的寫法有問題也可以糾正我,麻煩各位大神了。 -- 使用了format又使用了%,太繁琐了。
num = input('請輸入一個整數(輸入Q結束程序):')
while 1:
    if num == 'Q':
      break
    else:
      num1 = int(num)
      ans1 = '{0} {1} -> ox{2:x}'.format('十進制 -> 十六進制 :', num, num1)
      ans2 = '{0} {1} -> 00{2:o}'.format('十進制 -> 八進制 :', num, num1)
      ans3 = '{0} {1} -> {2}'.format('十進制 -> 二進制 :', num, bin(num1))
      print(ans1, '\n', ans2, '\n', ans3, sep = '')
      break

默默無名 发表于 2018-6-3 15:25:00

感謝各位大神,繼續努力學習!{:10_266:}
页: [1]
查看完整版本: 零基礎python第015講課後練習動動手字符串小問題