##讀取一個Python源檔案,將檔案中所有除保留字外的小寫字母換成大寫字母
##生成后的檔案要能夠被Python解釋器正確執行
#建立保留字串列
import keyword
s = keyword.kwlist
#建立內置函式串列w,將所有內置函式都加入保留字串列s
w = dir(__builtins__)
for i in range(len(w)):
s.append(w[i])
s.append('(input') #自行添加Python源檔案中保留字、自定義函式以外的Python引數
s.append('sum))') #百度到的Python書寫規范:括弧內的元素必須頂著左、右括弧,如:(a, b)正確;( a, b )不正確
n = input('輸入一個檔案名:')
#建立一個以每行的所有單詞為元素組成的串列組
f = open(n,'r',encoding = 'utf-8').readlines()
ls = [i.split() for i in f] #四行#@@代碼的簡寫
#@@ls = []
#@@for i in f:
#@@ i = i.split()
#@@ ls.append(i)
##fw = open(n,'r')
##for i in range(len(ls)):
## for j in range(len(ls[i])):
## x = ls[i][j]
## print(x)
#遍歷二維串列,把普通單詞小寫變大寫
fo = open(n,'w+')
for i in range(len(ls)):
if f[i].isspace(): #str.isspace():如果字串中只包含空格,回傳True,否則False
fo.write(' ' + '\n')
for j in range(len(ls[i])):
x = ls[i][j]
if x not in s:
x = x.upper()
else:
x = x
#將修改后的串列存入檔案(覆寫寫) 注意:“:”后的包含關系
if x == ls[i][len(ls[i])-1]:#判定是否遍歷至每行的末尾
if x == ':':
fo.write(x)
fo.write('\n')
fo.write(' ')#判斷是否是包含關系
else:
fo.write(x)
fo.write('\n')
else:
fo.write(x + ' ')
##fo.seek(0)
##for line in fo:
## print(line)
fo.close()
################源檔案代碼##################
##n = int (input ("請輸入一個整數:"))
##sum = 0
##for i in range (n) :
## sum += i+1
##print ("1到{}相加的和是{}" . format (n, sum))
運行程式,得到結果:
N = int (input ("請輸入一個整數:"))
sum = 0
for I in range (N) :
sum += I+1 print ("1到{}相加的和是{}" . format (N, sum))
兩個問題:1、處理不好最后的換行
2、源代碼為了分詞特意打了很多空格,雖然源代碼能正常運行,但我不知道這個源代碼是否符合規范。
請大神指點。
uj5u.com熱心網友回復:
如果源檔案代碼改為:def f():
try:
n = int(input("請輸入一個整數:"))
except:
print("輸入例外,請重新輸入:")
return f()
## s = 0 #計算器s,放在回圈外:s只初始化一次為0
for i in range(2,n):
s = 0 #計算器s,放在回圈內:外回圈每回圈一次,s就賦0一次
for j in range(2,i+1):
if i%j == 0:
s += 1
if s == 1:
print(i,end = " ")
f()
問題:1、'def f():'以下的陳述句,用冒號來判斷縮進不好使,請問大神有什么好的處理方法嗎?
2、 except:
print("輸入例外,請重新輸入:")
return f()
冒號后有2個縮進陳述句的代碼如何處理?
uj5u.com熱心網友回復:
2樓代碼書寫不規范,直接參考無法分詞。請自行增加空格。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/167105.html
