質問編集履歴

2 内容の修正

80ZX7OR0Bib6DNk

80ZX7OR0Bib6DNk score 12

2019/02/20 09:33  投稿

プログラムを実行したい
こんにちは。
・以下のコードを実行入力したところうまく実行されません。
どういったエラーなのかわかりません。
教えてください。よろしくお願いします。
・実行結果
```ここに言語を入力
Traceback (most recent call last):
 File "pyroad.py", line 42, in <module>
   allLines = returnLines(pyFileListGet(allFileListGet())) - pyroadCount
 File "pyroad.py", line 6, in allFileListGet
   for root, dirs, files in os.walk(path):
NameError: name 'os' is not defined
 File "pyroad.py", line 40, in <module>
   pyroadCount = sum(1 for line in open('pyroad.py')) # pyroad.pyの行数は除外
 File "pyroad.py", line 40, in <genexpr>
   pyroadCount = sum(1 for line in open('pyroad.py')) # pyroad.pyの行数は除外
UnicodeDecodeError: 'cp932' codec can't decode byte 0x96 in position 927: illegal multibyte sequence
```
です。
・ちなみにソースコードは以下になります。
https://pycarnival.com/pyroad/
このサイトの一つ目をそのままコピペしました。
・コード
```ここに言語を入力
import os
import datetime
def allFileListGet():
   path = '.'
   file_list = []
   for root, dirs, files in os.walk(path):
       for file in files:
           file_list.append(os.path.join(root, file))
   return file_list
def pyFileListGet(allFileList):
   pyFileList = []
   for file_name in allFileList:
       if file_name[-3:] == '.py':
           pyFileList.append(file_name)
   return pyFileList
def returnLines(pyList):
   line_sum = 0
   for file_name in pyList:
       lines_count = sum(1 for line in open(f'{file_name}'))
       line_sum += lines_count
   return line_sum
def fileWrite(data):
   f = open('pyroad.txt', 'a')
   now = datetime.datetime.now()
   f.write(f'{data},{now.year},{now.month},{now.day},{now.hour},{now.minute},{now.second}\n')
   f.close()
pyroadCount = sum(1 for line in open('pyroad.py')) # pyroad.pyの行数は除外
allLines = returnLines(pyFileListGet(allFileListGet())) - pyroadCount
rankList = ['二等兵', '一等兵', '上等兵', '伍長', '軍曹', '曹長', '准尉',
           '少尉', '中尉', '大尉', '少佐', '中佐', '大佐', '准将',
           '少将', '中将', '大将', '元帥']
levelLinesList = [1000, 2000, 3000, 5000, 6000, 7000, 8000, 9000, 10000,
                 12000, 14000, 16000, 18000, 20000, 25000, 30000, 50000]
if allLines < levelLinesList[0]:
   print(f'{allLines}行Pythonを書いているぞ!')
   print(f'お前は{rankList[0]}でまだ新米パイソニスタだ。\n書け!書けば分かる!')
   print('ごちゃごちゃ考えるな。1行でもコードを書け!')
elif allLines > levelLinesList[-1] - 1:
   print(f'{allLines}行もPythonを書いているとは...')
   print(f'あなた様は{rankList[-1]}です。')
   print('その調子でがんばってください。')
else:
   for i, _ in enumerate(levelLinesList): # 小さいほうから総当りの方法
       if allLines > levelLinesList[i] - 1 and allLines < levelLinesList[i+1]:
           print(f'{allLines}行Pythonを書いているぞ!')
           print(f'お前は{rankList[i+1]}パイソニスタだ!')
           print('ごちゃごちゃ考えるな。1行でもコードを書け!')
           break
# データの書き込み
fileWrite(allLines)
```
  • Python

    27097 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1 文法の修正

80ZX7OR0Bib6DNk

80ZX7OR0Bib6DNk score 12

2019/02/20 09:16  投稿

プログラムを実行したい
こんにちは。
・以下のコードを実行入力したところうまく実行されません。
どういったエラーなのかわかりません。
教えてください。よろしくお願いします。
・実行結果
```ここに言語を入力  
Traceback (most recent call last):
 File "pyroad.py", line 42, in <module>
   allLines = returnLines(pyFileListGet(allFileListGet())) - pyroadCount
 File "pyroad.py", line 6, in allFileListGet
   for root, dirs, files in os.walk(path):
NameError: name 'os' is not defined
```  
です。
・ちなみにソースコードは以下になります。
https://pycarnival.com/pyroad/
このサイトの一つ目をそのままコピペしました。
・コード
```ここに言語を入力  
import os
import datetime
def allFileListGet():
   path = '.'
   file_list = []
   for root, dirs, files in os.walk(path):
       for file in files:
           file_list.append(os.path.join(root, file))
   return file_list
def pyFileListGet(allFileList):
   pyFileList = []
   for file_name in allFileList:
       if file_name[-3:] == '.py':
           pyFileList.append(file_name)
   return pyFileList
def returnLines(pyList):
   line_sum = 0
   for file_name in pyList:
       lines_count = sum(1 for line in open(f'{file_name}'))
       line_sum += lines_count
   return line_sum
def fileWrite(data):
   f = open('pyroad.txt', 'a')
   now = datetime.datetime.now()
   f.write(f'{data},{now.year},{now.month},{now.day},{now.hour},{now.minute},{now.second}\n')
   f.close()
pyroadCount = sum(1 for line in open('pyroad.py')) # pyroad.pyの行数は除外
allLines = returnLines(pyFileListGet(allFileListGet())) - pyroadCount
rankList = ['二等兵', '一等兵', '上等兵', '伍長', '軍曹', '曹長', '准尉',
           '少尉', '中尉', '大尉', '少佐', '中佐', '大佐', '准将',
           '少将', '中将', '大将', '元帥']
levelLinesList = [1000, 2000, 3000, 5000, 6000, 7000, 8000, 9000, 10000,
                 12000, 14000, 16000, 18000, 20000, 25000, 30000, 50000]
if allLines < levelLinesList[0]:
   print(f'{allLines}行Pythonを書いているぞ!')
   print(f'お前は{rankList[0]}でまだ新米パイソニスタだ。\n書け!書けば分かる!')
   print('ごちゃごちゃ考えるな。1行でもコードを書け!')
elif allLines > levelLinesList[-1] - 1:
   print(f'{allLines}行もPythonを書いているとは...')
   print(f'あなた様は{rankList[-1]}です。')
   print('その調子でがんばってください。')
else:
   for i, _ in enumerate(levelLinesList): # 小さいほうから総当りの方法
       if allLines > levelLinesList[i] - 1 and allLines < levelLinesList[i+1]:
           print(f'{allLines}行Pythonを書いているぞ!')
           print(f'お前は{rankList[i+1]}パイソニスタだ!')
           print('ごちゃごちゃ考えるな。1行でもコードを書け!')
           break
# データの書き込み
fileWrite(allLines)
fileWrite(allLines)
```
  • Python

    27097 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る