日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python print用法制表空格_python中print函数的输出问题(空格,制表符)

發布時間:2025/3/12 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python print用法制表空格_python中print函数的输出问题(空格,制表符) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

在做編程題目時,為什么程序的實際輸出和預期輸出“看上去明明一模一樣”,但是就是提示有誤呢???

在此記錄。

問題描述

最近在看educoder實訓平臺上的一道編程題,題目要求大概是:

educoder中判斷程序是否正確,是通過輸出結果的字符串匹配來判斷的。

然而涉及到這個制表符,空格的輸出問題時,很容易出錯。

比如:

我的程序一開始是這樣:

def day(y, m, d):#計算y年m月d日是星期幾

# 請在下面編寫代碼

y0=y-(14-m)//12

x=y0+y0//4-y0//100+y0//400

m0=m+12*((14-m)//12)-2

d0=(d+x+(31*m0)//12)%7

# 請不要修改下面的代碼

return d0

def isLeapYear(year): #判斷year年是否閏年

# 請在下面編寫代碼

a=year%4

b=year%100

if(a==0 and b!=0):

isLeapYear="True"

else:

isLeapYear="False"

# 請不要修改下面的代碼

return isLeapYear

def calendar(y, m): #打印y年m月日歷

print(' {}年{}月'.format(y,m))

print('Su\tM\tTu\tW\tTh\tF\tSa')

# 請在下面編寫代碼

if(isLeapYear(y) is "True"):

list_1=[31,29,31,30,31,30,31,31,30,31,30,31]

firstday=day(y,m,1)

count=0

while(countlist_1[m-1]):

print("")

else:

list_2=[31,28,31,30,31,30,31,31,30,31,30,31]

firstday=day(y,m,1)

count=0

while(countlist_2[m-1]):

print("")

測評結果是這樣的:

實在讓人崩潰,明明是一模一樣的,為什么會錯呢???

解決方法

1 發現問題

我截取了預期輸出和實際輸出中的一行,進行比較:

import difflib

s1='''

12345

'''

s2='''

1 2 3 4 5

'''

print('s1 is equal to s2 ? The answer is ',s1==s2)

發現輸出為:

果然不一樣。

2 解決問題

通過這個,我終于發現:

原來s2(也就是我的實際輸出)對比s1,是多了一個空格的。

太神奇了,原來空格+制表符 看上去還是和 制表符 一樣!!!

錯誤代碼在:

print(a,'\t',end="")

修改成:

print('%d\t'%a,end="")

這樣就對了。!!!

為什么:

因為print(a,'\t',end="") 中 a和'\t'中間隔了一個逗號,導致二者之間多輸出了一個空格。

比如:

輸入代碼

a=1

b=2

print(a,b)

輸出不是12,而是1 2。

中間是有空格的(原因就在于a和b之間的逗號)

3 程序通過

總結

當教輔實在太花時間了。

總結

以上是生活随笔為你收集整理的python print用法制表空格_python中print函数的输出问题(空格,制表符)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。