質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

260閲覧

python2→python3のエラー

sphy

総合スコア21

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/09/15 00:49

プログラム初心者です。

ラズパイにセンサーをつないで遊んでいます。

サンプルとして用意されていたコードが
python2ではそのまま動くのですが
python3では動きませんでした。

python3で動かしたいと思っているのですが、

#!/usr/bin/env python
import RPi.GPIO as GPIO
import ADC0832
import time

LedPin = 16
threshold = 120

def init():
ADC0832.setup()
GPIO.setup(LedPin, GPIO.OUT)

def loop():
while True:
res = ADC0832.getResult(0)
print ('res = %d') % res
if(res > threshold):
print ('It is night, light on...')
GPIO.output(LedPin, GPIO.HIGH)
else:
print ('It is already dawn, light off')
GPIO.output(LedPin, GPIO.LOW)
time.sleep(0.2)

if name == 'main':
init()
try:
loop()
except KeyboardInterrupt:
ADC0832.destroy()
print 'The end !'

python3で動かしてみたところ、
下記のアラートが出ました。

Traceback (most recent call last):
File "/home/pi/Desktop/Python保存/photoresistor/ees.py", line 32, in <module>
loop()
File "/home/pi/Desktop/Python保存/photoresistor/ees.py", line 19, in loop
print ('res = %d') % res
TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'

どのように修正したらアラートが表示されなくなるのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2018/09/15 01:14

質問は編集しましょう。
guest

回答2

0

%は文字列にかからないといけないので。

Python

1print('res = %d' % res)

あるいはstr.formatを使ったり、

Python

1print('res = {}'.format(res))

Python3.6以降ならf-string記法を使ったり。

Python

1print(f'res = {res}')

コードの書き方について

teratailには、コードを見やすく表示する機能があります。
質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
Python
特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。

投稿2018/09/15 00:57

編集2018/09/15 01:07
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sphy

2018/09/15 01:18

ありがとうございます。勉強になります。
guest

0

ベストアンサー

print( 'res = ' + res)

とすればどでしょ

投稿2018/09/15 00:51

編集2018/09/15 00:53
y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sphy

2018/09/15 00:54

ありがとうございます。解決しました
LouiS0616

2018/09/15 01:04

@y_waiwai さん resが数値型なら、修正後の回答の方法ではうまくいかないと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問