숫자 목록을 생성 할 수 있도록 루프 밖에서 변수를 생성 할 때 파이썬 스크립트에서 작업하고 있습니다. 번호 목록 생성에 문제가 있습니다.루프 밖에서 변수를 사용하는 방법
나는이 때 :
def All_Channels(self):
#Pull the data from the database
channelList = list()
database_path =
xbmc.translatePath(os.path.join('special://userdata/addon_data/script.tvguide',
'source.db'))
if os.path.exists(database_path):
#get the channels list
cur.execute('SELECT channel FROM programs WHERE channel GROUP BY
channel')
for row in cur:
channels = row[0].encode('ascii')
channelList.append(channels)
# set the channels text
for index in range(0, CHANNELS_PER_PAGE):
channel = channelList[index]
channel_index = index
if channel is not None:
for channels_id in range(4127, 4547, 70):
for channels_start_end in range(69):
ID = channels_id + channels_start_end
print ID
이 같은 출력을 얻을 것이다 :
21:35:54 T:4724 NOTICE: 4545
21:35:54 T:4724 NOTICE: 4545
21:35:54 T:4724 NOTICE: 4545
21:35:54 T:4724 NOTICE: 4545
21:35:54 T:4724 NOTICE: 4545
21:35:54 T:4724 NOTICE: 4545
21:35:54 T:4724 NOTICE: 4545
출력은 다음과 같이해야한다 :이 같은 출력을 얻을 것이다
:
21:35:54 T:4724 NOTICE: 4127
21:35:54 T:4724 NOTICE: 4197
21:35:54 T:4724 NOTICE: 4267
21:35:54 T:4724 NOTICE: 4337
21:35:54 T:4724 NOTICE: 4407
21:35:54 T:4724 NOTICE: 4477
21:35:54 T:4724 NOTICE: 4547
for channels_id in range(4127, 4547, 70):
for channels_start_end in range(69):
ID = channels_id + channels_start_end
print ID
당신은 내가 루프의 외부 원하는 번호를 생성하는 방법을 말해 주시겠습니까과 어떻게 루프의 외부 변수를 사용할 수 있습니다 : 문제 (3210)이 코드에서 거짓말인가?
편집 : 나는 이것을 할 때 :
for channels_id in range(4127, 4547, 70):
print channels_id
나는 이것을 얻을 것이다 :
00:30:28 T:6972 NOTICE: 4127
00:30:28 T:6972 NOTICE: 4197
00:30:28 T:6972 NOTICE: 4267
00:30:28 T:6972 NOTICE: 4337
00:30:28 T:6972 NOTICE: 4407
00:30:28 T:6972 NOTICE: 4477
는 4547.
편집이 누락 하나 개의 값이 있습니다 * 업데이트 1 :
내가 이것을 사용하려고하면 :
# set the channels text
for index in range(0, CHANNELS_PER_PAGE):
channel = channelList[index]
channel_index = index
for channels_id in range(4127, 4548, 70):
ID = []
if channel is not None:
ID = channels_id
print ID
print channel
self.getControl(ID).setLabel(channel)
출력 :은 행에 같은 값 7을 얻을 것이다으로
01:59:10 T:6768 NOTICE: 4547
01:59:10 T:6768 NOTICE: 4547
01:59:10 T:6768 NOTICE: 4547
01:59:10 T:6768 NOTICE: 4547
01:59:10 T:6768 NOTICE: 4547
01:59:10 T:6768 NOTICE: 4547
01:59:10 T:6768 NOTICE: 4547
그것은 루프의 외부 값을 저장하지 않습니다.
난 그래서 그때 I 라벨시에 설정된 각 값 channel
변수를 사용하여 라벨을 설정하는 제어 self.getControl(ID).setLabel(channel)
사용하기 전에 값의리스트를 생성 할 수 for index
루프 아래 for channels_id
의 루프를 사용할 변수 ID
을 사용하여 값을 생성했습니다. 나중에 사용할 수 있도록 루프 외부에 값을 저장하는 방법을 묻습니다. 도움이 될 수 있으면 답변 게시물에서 코드를 업데이트하십시오.
중첩 for 루프 외부에 ID를 선언하십시오. 그렇게하면 액세스 할 수 있습니다. – heinst
@heinst : 아니요, 이것은 C가 아닙니다. 파이썬에서 변수를 "선언"하지 않는다면, 함수에 할당하면되고, 함수 (그리고 이해력과 같은 몇 가지 다른 것들)는 모든 스위트가 아닌 범위를 갖는다. – abarnert
우리가 보여준 코드가 불완전하기 때문에 실행할 수없고 원하는 코드를 인쇄 할 수 없을 때 원하는 것을 정확하게 알기가 어렵습니다. 도움말에서 [최소한의 완전하고 검증 가능한 예] (http://stackoverflow.com/help/mcve)를 읽으십시오. – abarnert