Найти - Пользователи
Полная версия: словарь
Начало » Python для новичков » словарь
1 2 3 4 5
stil
alexx11
может быть KOI-8?
возможно,надо будет потом узнать.

если никого не затруднит подскажите пожалуйста еще одно решение задачи: нужно открыть определенный фаил.py, в котором содержится словарь {ключ:значение} ,далее этот фаил исполняется,то есть в нем осуществляется поиск нужного слова и из него же выдается значение слова,затем операция заканчивается и дальше продолжается ход основной инструкции.вот пытаюсь что то сделать:
основная инструкция
if slovo in spisok:
myfile = open(“1.py”)
slovar = myfile.read()
print (“yes”) # вот гдето здесь должен исполняться 1.py,тоесть в нем должно искаться слово..

if slovo in slovar:
print (slovar)
else:
print (“нет такого слова”)
————————————–
1.py содержит
! /usr/bin/env python3
# -*- coding: utf-8 -*-

slovar = {“металл”:“прочное”,“стекло”:“хрупкое”,“дерево”:“горит”}
sp3
назови файл 1.py скажем file1.py (чтоб с букв начиналось имя)
impot file1
mydic = file1.slovar
if slovo in mydic:
stil
огромное спасибо,код получился таким,переменную mydic пришлось заменить иначе не работало:
if slovo in spisok:
import file1
slovar = file1.slovar #вот здесь я немного не понял.
if slovo in slovar:
print (slovar)
else:
print (“нет такого слова”)
————————————————————–
slovar = file1.slovar
я вот здесь немного не понял,вводится переменная slovar, она равна file1(это я предпалагаю что фаил является уже модулем?), а дальше зачем писать точку и slovar ? если не сложно объясните плиз.
stil
вот этот вариант наверное правельней,но он не работает:
if slovo in spisok:
import file1
mydic = file1.slovar
if slovo in mydic:
print (slovar)
else:
print (“нет такого слова”)
sp3
if slovo[0] in spisok:
import file1
reload(file1) # если file1 изменялся после запуска скрипта без этой
# команды вы не увидите изменения
mydic = file1.slovar
if slovo in mydic:
print (mydic[slovo]) # здесь у вас была ошибка
else:
print ("нет такого слова")
может я что то упускаю но сначала вы проверяете slovo а потом уже slovo
stil
решил проблему с именами выбираемых модулей,но из-за кодировки появляются ошибки.собственно вот:
if slovo in spisok:
modname = “filek%s” % (spisok[slovo])
filek = __import__(modname) #есть аналогичное exec “import ” + modname
mydic = filek.slovar # но в чем разница не знаю
————————
если список сделать только из английских букв то код работает идеально.
Андрей Светлов
В смысле вы хотите импортировать модуль с русским именем? Не выйдет.
stil
Андрей Светлов
Re: словарь
В смысле вы хотите импортировать модуль с русским именем? Не выйдет.
нет,я изначально знал что модули с русскими именами не сработают,поэтому имена будут filek%s где %s это число от 1 до 33 по числу букв соответственно.тоесть проверяется первая буква - загружается соответственный модуль.
filek = __import__(“filek%s” % (spisok[slovo]) )
———————————————————-
но вот кодировка все портит. какая в линуксе я не понимаю.
Андрей Светлов
Зависит от ваших настроек..
Кроме того, какую кодировку вы имеете в виду? Локаль процесса, файловой системы или что-то еще?
Или питона?
utf8, скорее всего - у вас по умолчанию.
Для питона - ascii, пока не укажете другую в заголовке # -*- encoding:utf-8 -*-
stil
Андрей Светлов
Кроме того, какую кодировку вы имеете в виду? Локаль процесса, файловой системы или что-то еще?
Или питона?
если бы я знал,я бы смог ответить на этот вопрос. все что знаю: мне нужно сделать виждет для среды kde в линуксе. какую кодировку использует kde или линукс я не знаю,но ввод букв с клавиатуры использующие кодировку должны совпадать с кодировкой исполняемого питоновского файла
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB