<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF102%3AFlash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8</id>
		<title>LXF102:Flash-карточки - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF102%3AFlash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;action=history"/>
		<updated>2026-05-13T05:13:17Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=9871&amp;oldid=prev</id>
		<title>2sash-kan: /* Завершаем */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=9871&amp;oldid=prev"/>
				<updated>2010-03-14T14:31:35Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Завершаем&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 14:31, 14 марта 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 327:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 327:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;получится что-то классное, пожалуйста, сообщите нам, и мы, возможно,&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;получится что-то классное, пожалуйста, сообщите нам, и мы, возможно,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;разместим это на нашем DVD. Если у вас возникли вопросы по данному&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;разместим это на нашем DVD. Если у вас возникли вопросы по данному&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;уроку, обратитесь к разделу Программирование на http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;www&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;linuxforum.ru&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;уроку, обратитесь к разделу Программирование на http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;unixforum&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;org&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Наслаждайтесь!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Наслаждайтесь!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>2sash-kan</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=9827&amp;oldid=prev</id>
		<title>Newacct в 06:33, 9 марта 2010</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=9827&amp;oldid=prev"/>
				<updated>2010-03-09T06:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 06:33, 9 марта 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 98:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 98:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;while count &amp;lt; 10:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;while count &amp;lt; 10:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;os.system(‘clear’)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;os.system(‘clear’)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;wordnum = random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f1content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;wordnum = random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f1content))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘Слово:’, f1content[wordnum], ‘’&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘Слово:’, f1content[wordnum], ‘’&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options = [random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f2content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;),&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options = [random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f2content)),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f2content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;),&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f2content)),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f2content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;)]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f2content))]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options[random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, 2&lt;/del&gt;)] = wordnum&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options[random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;3&lt;/ins&gt;)] = wordnum&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘1 -’, f2content[options[0]],&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘1 -’, f2content[options[0]],&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘2 -’, f2content[options[1]],&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘2 -’, f2content[options[1]],&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 110:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;if options[answer-1] == wordnum:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;if options[answer-1] == wordnum:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;raw_input(‘\n Верно! Нажмите enter...’)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;raw_input(‘\n Верно! Нажмите enter...’)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;score = &lt;/del&gt;score+1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;score +&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;= &lt;/ins&gt;1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;else:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;else:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;raw_input(‘\n Неверно! Нажмите enter...’)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;raw_input(‘\n Неверно! Нажмите enter...’)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;count = &lt;/del&gt;count+1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;count +&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;= &lt;/ins&gt;1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘\n Набрано очков:’, score&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘\n Набрано очков:’, score&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;При наличии flashcard.py, russian.txt и english.txt в вашем домашнем&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;При наличии flashcard.py, russian.txt и english.txt в вашем домашнем&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 141:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 141:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;while count &amp;lt; 10:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;while count &amp;lt; 10:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;os.system(‘clear’)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;os.system(‘clear’)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;wordnum = random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f1content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;wordnum = random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f1content))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘Слово:’, f1content[wordnum], ‘’&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;print ‘Слово:’, f1content[wordnum], ‘’&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 181:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 181:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;массива, а строка десять – девятый. Затем мы отображаем слово из&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;массива, а строка десять – девятый. Затем мы отображаем слово из&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;файла english.txt.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;файла english.txt.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;options = [random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f2content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;),&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;options = [random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f2content)),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f2content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;),&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f2content)),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f2content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;)]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f2content))]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options[random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, 2&lt;/del&gt;)] = wordnum&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options[random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;3&lt;/ins&gt;)] = wordnum&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Далее создается массив трех возможных ответов с именем&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Далее создается массив трех возможных ответов с именем&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options. Мы задаем для каждого ответа случайное число, ограниченное сверху числом строк в f2content (russian.txt). Теперь у нас есть&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options. Мы задаем для каждого ответа случайное число, ограниченное сверху числом строк в f2content (russian.txt). Теперь у нас есть&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 258:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 258:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;while count &amp;lt; 10:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;while count &amp;lt; 10:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;screen.fill(0)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;screen.fill(0)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;wordnum = random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f2content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;wordnum = random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f2content))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;mainpic = image.load(f2content[wordnum].rstrip(‘\n’))&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;mainpic = image.load(f2content[wordnum].rstrip(‘\n’))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;screen.blit(mainpic, (255, 50))&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;screen.blit(mainpic, (255, 50))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options = [random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f1content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;),&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options = [random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f1content)),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f1content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;),&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f1content)),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, &lt;/del&gt;len(f1content)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-1&lt;/del&gt;)]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(len(f1content))]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options[random.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;randint&lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0, 2&lt;/del&gt;)] = wordnum&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;options[random.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;randrange&lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;3&lt;/ins&gt;)] = wordnum&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;text1 = font.render(‘1 - ‘ + f1content[options[0]].rstrip(‘\n’),&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;text1 = font.render(‘1 - ‘ + f1content[options[0]].rstrip(‘\n’),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;True, (255, 255, 255))&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;True, (255, 255, 255))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Newacct</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=7648&amp;oldid=prev</id>
		<title>Yaleks в 18:07, 18 апреля 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=7648&amp;oldid=prev"/>
				<updated>2009-04-18T18:07:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;amp;diff=7648&amp;amp;oldid=7527&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=7527&amp;oldid=prev</id>
		<title>Yaleks: Новая: {{Цикл/Программирование}} == Кодируем: Flash-карточки == : ''ЧАСТЬ 2 Улучшите навыки программиста и выучите и...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF102:Flash-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8&amp;diff=7527&amp;oldid=prev"/>
				<updated>2009-04-05T17:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: {{Цикл/Программирование}} == Кодируем: Flash-карточки == : &amp;#039;&amp;#039;ЧАСТЬ 2 Улучшите навыки программиста и выучите и...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Цикл/Программирование}}&lt;br /&gt;
== Кодируем: Flash-карточки ==&lt;br /&gt;
: ''ЧАСТЬ 2 Улучшите навыки программиста и выучите иностранный язык – помогут '''Майк Сондерс''' и ваш собственный инструмент для показа всплывающих карточек...''&lt;br /&gt;
&lt;br /&gt;
Одна из причин нашей любви к компьютерам – их способ-&lt;br /&gt;
ность просто работать. Конечно, устройства могут ломаться,&lt;br /&gt;
а программы – содержать ошибки, но когда все в порядке,&lt;br /&gt;
ваши данные не исчезнут как по волшебству. Если вы загрузите, ска-&lt;br /&gt;
жем, норвежский словарь, ваш ПК без возражений сохранит его для&lt;br /&gt;
последующих вызовов. ПК не будет уставать или пытаться изучить&lt;br /&gt;
другой язык; не сможет он и упиться до полного забвения места, куда&lt;br /&gt;
вчера записал данные. Он не поссорится с ПК-дамой и не уничтожит&lt;br /&gt;
ее файлы на почве ревности. В целостной системе данные всегда&lt;br /&gt;
под рукой.&lt;br /&gt;
Однако здесь, в царстве людей, мы постоянно боремся с недочета-&lt;br /&gt;
ми и изворотами нашей мысли. Мы вечно все забываем, меняем свое&lt;br /&gt;
мнение – короче, лучше бы наш мозг походил на ОЗУ, а не на серые&lt;br /&gt;
комки органики. Всего очевиднее это при изучении иностранного язы-&lt;br /&gt;
ка: компьютер хранит миллионы слов и никогда их не «забывает», а мы&lt;br /&gt;
с трудом припоминаем, как по-английски «встреча», даже если исполь-&lt;br /&gt;
зовали это слово вчера. Спасибо, мозг.&lt;br /&gt;
Итак, проект кодирования этого месяца – создание программы&lt;br /&gt;
всплывающих карточек (flash-карт), которая помогает запоминать&lt;br /&gt;
иностранные слова. Она отображает английские слова и просит вас&lt;br /&gt;
выбрать их русский эквивалент из списка трех, случайным образом&lt;br /&gt;
выбранных, слов, начисляя вам очки по мере вашего прогресса. Но&lt;br /&gt;
она не ограничивается только английским и пригодится для любого&lt;br /&gt;
языка, или вообще для всего, что нужно изучить! Вы сможете даже&lt;br /&gt;
настроить ее на отображение названий животных: пусть спросит вас&lt;br /&gt;
об их виде.&lt;br /&gt;
&lt;br /&gt;
=== Новый опыт Python ===&lt;br /&gt;
На LXFDVD прошлого месяца была опубликована подшивка LXF за&lt;br /&gt;
2005–2007 года; помимо прочего, в ней можно найти и учебник по&lt;br /&gt;
языку Python (выпуски [[LXF74-75:Python|74/75]]–[[LXF83:Python|83]]). Не пугайтесь, если вы пропустили&lt;br /&gt;
прошлый номер или никогда не писали на Python: в нем очень легко&lt;br /&gt;
разобраться. Если вы знакомы хоть с одним языком программирова-&lt;br /&gt;
ния, то не встретите проблем при работе с этим кодом.&lt;br /&gt;
Наше приложение flash-карт должно будет читать текстовые файлы&lt;br /&gt;
и генерировать случайные числа. Открытие файлов в Python – плевое&lt;br /&gt;
дело: создайте новый текстовый файл с именем foo.txt, вбейте в него&lt;br /&gt;
несколько слов (по одному в строке) и сохраните в домашнем каталоге.&lt;br /&gt;
Теперь создайте файл с именем test.py, также в домашнем каталоге, со&lt;br /&gt;
следующим содержимым:&lt;br /&gt;
file = open(‘foo.txt’, ‘r’)&lt;br /&gt;
print file.readlines()&lt;br /&gt;
Для запуска этого Python-скрипта откройте терминал и введите:&lt;br /&gt;
python test.py&lt;br /&gt;
Этот код открывает foo.txt (‘r’ означает «только для чтения») и свя-&lt;br /&gt;
зывает его содержимое с новым объектом по имени file.&lt;br /&gt;
Во второй строке кода мы вызываем readlines() нашего объекта file,&lt;br /&gt;
который сканирует foo.txt и сохраняет его строки как элементы массива.&lt;br /&gt;
При его печати на экране мы увидим:&lt;br /&gt;
[‘hello\n’, ‘banana\n’, ‘cupcake\n’]&lt;br /&gt;
Понятно, слова будут те, которые вы ввели в foo.txt. Но отсюда вид-&lt;br /&gt;
но, как Python получает текст из файла и выводит элементы массива&lt;br /&gt;
через запятую. Ну, хорошо; а если мы хотим нормально отобразить&lt;br /&gt;
текст файла?&lt;br /&gt;
file = open(‘foo.txt’, ‘r’)&lt;br /&gt;
for line in file:&lt;br /&gt;
print line&lt;br /&gt;
Этот код выводит все строки из foo.txt. Заметьте, что отступы в&lt;br /&gt;
Python важны – табуляция перед print line говорит о том, что этот код&lt;br /&gt;
выполняется внутри цикла for. Конкретно этот цикл for говорит: для&lt;br /&gt;
(for) каждой строки открытого нами файла, напечатать ее, и так до&lt;br /&gt;
конца файла.&lt;br /&gt;
Итак, мы теперь можем получать текст из файлов и использовать&lt;br /&gt;
списки слов для наших flash-карточек. Но надо сделать еще кое-что:&lt;br /&gt;
наша программа должна отобразить список возможных ответов при&lt;br /&gt;
выводе слова. Кроме того, было бы крайне бесполезно, если бы вер-&lt;br /&gt;
ным ответом был всегда первый! Поэтому в нашей программе мы соби-&lt;br /&gt;
раемся отображать три возможных ответа, один из которых правиль-&lt;br /&gt;
ный. Вот как получить случайные числа:&lt;br /&gt;
import random&lt;br /&gt;
a = random.randint(1, 5)&lt;br /&gt;
b = random.randint(30, 100)&lt;br /&gt;
print a, b&lt;br /&gt;
Первая строка говорит Python, что мы хотим использовать его гене-&lt;br /&gt;
ратор случайных чисел. После этого мы создаем две переменные: a и&lt;br /&gt;
b, и присваиваем им случайные значения стандартной подпрограммой&lt;br /&gt;
Python random.randint(). Мы указываем диапазон значений – для пере-&lt;br /&gt;
менной a это будет число от 1 до 5 (включительно). Для b – число меж-&lt;br /&gt;
ду 30 и 100. Легко!&lt;br /&gt;
&lt;br /&gt;
=== Создаем flashcard.py 1.0 ===&lt;br /&gt;
Давайте поработаем с программой. Нам понадобятся два текстовых&lt;br /&gt;
файла: в одном – английские слова, в другом – соответствующие&lt;br /&gt;
русские. (Или, например, в одном файле могут быть названия стран,&lt;br /&gt;
а во втором – названия их столиц.) Важно, чтобы оба файла имели&lt;br /&gt;
одинаковое число строк и соответствие слов для каждой их пары.&lt;br /&gt;
Если вы используете названия столиц и седьмая строка первого фай-&lt;br /&gt;
ла – это «Япония», то седьмая строка второго файла должна содержать&lt;br /&gt;
«Токио». Иначе ответы не подойдут!&lt;br /&gt;
Итак, создадим два текстовых файла в домашнем каталоге и вве-&lt;br /&gt;
дем по десять слов в каждый из них, по одному в строке. В нашем при-&lt;br /&gt;
мере, первый файл называется english.txt и содержит слова ‘Thanks,&lt;br /&gt;
word, job’ и т.д.; второй файл называется russian.txt и содержит ‘спа-&lt;br /&gt;
сибо, слово, работа’ и т.д. Теперь нам необходим код на Python, чтобы&lt;br /&gt;
работать с этими текстовыми файлами в домашнем каталоге – и вот&lt;br /&gt;
вам листинг. Он есть на нашем DVD (flashcard.py в разделе Magazine/&lt;br /&gt;
CodeProject), но пока просто пробегитесь по нему...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;# -*- coding: utf_8 -*-&lt;br /&gt;
import os, random&lt;br /&gt;
count = 0&lt;br /&gt;
score = 0&lt;br /&gt;
file1 = open(‘english.txt’, ‘r’)&lt;br /&gt;
file2 = open(‘russian.txt’, ‘r’)&lt;br /&gt;
f1content = file1.readlines()&lt;br /&gt;
f2content = file2.readlines()&lt;br /&gt;
while count &amp;lt; 10:&lt;br /&gt;
os.system(‘clear’)&lt;br /&gt;
wordnum = random.randint(0, len(f1content)-1)&lt;br /&gt;
print ‘Слово:’, f1content[wordnum], ‘’&lt;br /&gt;
options = [random.randint(0, len(f2content)-1),&lt;br /&gt;
random.randint(0, len(f2content)-1),&lt;br /&gt;
random.randint(0, len(f2content)-1)]&lt;br /&gt;
options[random.randint(0, 2)] = wordnum&lt;br /&gt;
print ‘1 -’, f2content[options[0]],&lt;br /&gt;
print ‘2 -’, f2content[options[1]],&lt;br /&gt;
print ‘3 -’, f2content[options[2]],&lt;br /&gt;
answer = input(‘\n Ваш выбор:’)&lt;br /&gt;
if options[answer-1] == wordnum:&lt;br /&gt;
raw_input(‘\n Верно! Нажмите enter...’)&lt;br /&gt;
score = score+1&lt;br /&gt;
else:&lt;br /&gt;
raw_input(‘\n Неверно! Нажмите enter...’)&lt;br /&gt;
count = count+1&lt;br /&gt;
print ‘\n Набрано очков:’, score&amp;lt;/source&amp;gt;&lt;br /&gt;
При наличии flashcard.py, russian.txt и english.txt в вашем домашнем&lt;br /&gt;
каталоге откройте терминал и введите python flashcard.py. Вы увидите,&lt;br /&gt;
что программа отображает английское слово, а ниже – три возможных&lt;br /&gt;
русских эквивалента. Эти эквиваленты пронумерованы, и если вы счи-&lt;br /&gt;
таете, что верный ответ – это 3, просто нажмите 3, а затем Enter. После&lt;br /&gt;
этого программа скажет вам, правы вы или ошибаетесь – всего будет&lt;br /&gt;
задано десять вопросов.&lt;br /&gt;
Давайте рассмотрим код более детально. Мы начали строкой с&lt;br /&gt;
import [Русская версия скрипта начинается с указания используемой&lt;br /&gt;
в системе кодировки, в противном случае программа не будет выпол-&lt;br /&gt;
няться, – прим. пер.], которая говорит Python, какие возможности&lt;br /&gt;
мы собираемся использовать. В нашем случае необходимо вызывать&lt;br /&gt;
функцию ОС (для очистки экрана) и генерировать случайные числа.&lt;br /&gt;
Затем мы описываем две переменные, count и score – первая исполь-&lt;br /&gt;
зуется для отображения десяти вопросов, а вторая запоминает число&lt;br /&gt;
верных ответов. Далее идет:&lt;br /&gt;
file1 = open(‘english.txt’, ‘r’)&lt;br /&gt;
file2 = open(‘russian.txt’, ‘r’)&lt;br /&gt;
f1content = file1.readlines()&lt;br /&gt;
f2content = file2.readlines()&lt;br /&gt;
Здесь мы открываем два файла и связываем их с двумя перемен-&lt;br /&gt;
ными с именами file1 и file2. Эти переменные – вроде дескрипторов&lt;br /&gt;
этих файлов: они представляют файлы, сохраненные в памяти. Но нам&lt;br /&gt;
не нужны просто сами файлы; нам необходимо их содержимое, поэто-&lt;br /&gt;
му следующие две строки кода по кусочкам переносят реальный текст&lt;br /&gt;
в два массива с именами f1content и f2content. Теперь у нас есть список&lt;br /&gt;
английских слов в f1content и список русских слов в f2content. Затем&lt;br /&gt;
начинается основной цикл программы:&lt;br /&gt;
while count &amp;lt; 10:&lt;br /&gt;
os.system(‘clear’)&lt;br /&gt;
wordnum = random.randint(0, len(f1content)-1)&lt;br /&gt;
print ‘Слово:’, f1content[wordnum], ‘’&lt;br /&gt;
Мы хотим задать десять вопросов, то есть выполнить весь код с&lt;br /&gt;
отступом десять раз (переменная-счетчик каждый раз увеличивает-&lt;br /&gt;
ся). Первая строка этого цикла очищает экран, вызывая стандартную&lt;br /&gt;
утилиту /usr/bin/clear, а затем мы отображаем случайное слово. Мы&lt;br /&gt;
говорим: wordnum должно принять случайное значение, представ-&lt;br /&gt;
ляющее строку в файле слов, так что дай мне число между нулем и&lt;br /&gt;
размером файла (в строках). Хотя файл слов может иметь строки от&lt;br /&gt;
первой до десятой, массивы нумеруются с нуля, вот почему мы берем&lt;br /&gt;
случайное число от нуля до числа строк в файле минус один. То есть&lt;br /&gt;
строка один в f1content (english.txt) – на самом деле нулевой элемент&lt;br /&gt;
массива, а строка десять – девятый. Затем мы отображаем слово из&lt;br /&gt;
файла english.txt.&lt;br /&gt;
options = [random.randint(0, len(f2content)-1),&lt;br /&gt;
random.randint(0, len(f2content)-1),&lt;br /&gt;
random.randint(0, len(f2content)-1)]&lt;br /&gt;
options[random.randint(0, 2)] = wordnum&lt;br /&gt;
Далее создается массив трех возможных ответов с именем&lt;br /&gt;
options. Мы задаем для каждого ответа случайное число, ограничен-&lt;br /&gt;
ное сверху числом строк в f2content (russian.txt). Теперь у нас есть&lt;br /&gt;
три случайных русских слова – но стойте, одно из них должно быть&lt;br /&gt;
верным, ведь так? Иначе получится три неверных ответа! Так что&lt;br /&gt;
положим один из ответов в options равным wordnum – то есть верно-&lt;br /&gt;
му. И вместо того, чтобы верный ответ всегда был, скажем, первым,&lt;br /&gt;
мы размещаем его в случайное место в списке из трех возможных&lt;br /&gt;
ответов.&lt;br /&gt;
Оставшийся код понять очень просто. Он печатает на экране три&lt;br /&gt;
возможных ответа затем запрашивает ответ у пользователя – то&lt;br /&gt;
есть ввод 1, 2 или 3. Когда пользователь вводит ответ, мы прове-&lt;br /&gt;
ряем, соответствует ли&lt;br /&gt;
он верному слову. То&lt;br /&gt;
есть, если русское сло-&lt;br /&gt;
во – «спасибо» и номер&lt;br /&gt;
варианта thanks – «2»,&lt;br /&gt;
когда пользователь вво-&lt;br /&gt;
дит 2, наша программа&lt;br /&gt;
говорит: «Ах! Вариант&lt;br /&gt;
два является седьмым&lt;br /&gt;
в файле русских слов. И истинный номер ответа wordnum также&lt;br /&gt;
равен семи, так что все верно! Слова совпадают.» В точку.&lt;br /&gt;
&lt;br /&gt;
=== Версия с картинками ===&lt;br /&gt;
Теперь у нас есть текстовый инструмент flash-карт, превосходный для&lt;br /&gt;
множества применений, а как насчет графической версии? Допустим,&lt;br /&gt;
картинка с животным и три возможных названия – идеально для детей.&lt;br /&gt;
А может, вы захотите нарисовать национальные флаги – кстати, имен-&lt;br /&gt;
но это мы и собираемся сделать. Как и прежде, программу можно пре-&lt;br /&gt;
образовать во что угодно, использующее слова и картинки: блюда и их&lt;br /&gt;
названия на испанском, фотографии звезд и их имена...&lt;br /&gt;
Для этого необходимо выйти за границы командной строки и вос-&lt;br /&gt;
пользоваться графическим слоем. К счастью, у нас есть прекрасный&lt;br /&gt;
выбор для нашего Python-приключения: PyGame, библиотека, связы-&lt;br /&gt;
вающая Python с популярным медиа-слоем SDL. PyGame позволяет&lt;br /&gt;
создавать окна и отображать соответствующие картинки на экране,&lt;br /&gt;
причем с минимумом усилий. Собственно, большая часть кода оста-&lt;br /&gt;
нется той же – надо только заставить отображаться вместо текста&lt;br /&gt;
картинки.&lt;br /&gt;
Наша первая версия flashcard.py использовала два текстовых фай-&lt;br /&gt;
ла с соответствиями слов, а эта графическая инкарнация будет исполь-&lt;br /&gt;
зовать соответствия слов и картинок. То есть file1.txt может содержать&lt;br /&gt;
«Непал, Канада, Финляндия...», а file2.txt – ‘nepalflag.png, canadaflag.png,&lt;br /&gt;
finlandflag.png...’ и так далее. Слова будем получать из file1, а картинки&lt;br /&gt;
для отображения – из file2.&lt;br /&gt;
Код для этого выйдет более длинный, и чтобы зря не тратить место,&lt;br /&gt;
мы приведем здесь лишь основную часть. Но это большая часть, и она&lt;br /&gt;
вам покажет, как работает графическая версия. На нашем DVD в раз-&lt;br /&gt;
деле Magazine/CodeProject/Graphical имеется полный листинг кода со&lt;br /&gt;
множеством комментариев (обозначенных символом #).&lt;br /&gt;
Заметьте, что перед запуском программы необходимо устано-&lt;br /&gt;
вить библиотеку PyGame: большинство дистрибутивов имеют ее&lt;br /&gt;
в своих репозиториях (поищите в вашем менеджере пакетов), но&lt;br /&gt;
если это не так, исходный код вы найдете в разделе Разработка&lt;br /&gt;
нашего DVD.&lt;br /&gt;
Вот наш основной кусок кода. Здесь есть несколько новых элемен-&lt;br /&gt;
тов, но, в типичной манере Python, по большей части все самодоку-&lt;br /&gt;
ментировано – открываем файл изображения, рисуем его на экране в&lt;br /&gt;
указанной позиции, и все.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;init()&lt;br /&gt;
screen = display.set_mode((640, 480))&lt;br /&gt;
display.set_caption(‘Flashcard’)&lt;br /&gt;
font = font.Font(None, 48)&lt;br /&gt;
while count &amp;lt; 10:&lt;br /&gt;
screen.fill(0)&lt;br /&gt;
wordnum = random.randint(0, len(f2content)-1)&lt;br /&gt;
mainpic = image.load(f2content[wordnum].rstrip(‘\n’))&lt;br /&gt;
screen.blit(mainpic, (255, 50))&lt;br /&gt;
options = [random.randint(0, len(f1content)-1),&lt;br /&gt;
random.randint(0, len(f1content)-1),&lt;br /&gt;
random.randint(0, len(f1content)-1)]&lt;br /&gt;
options[random.randint(0, 2)] = wordnum&lt;br /&gt;
text1 = font.render(‘1 - ‘ + f1content[options[0]].rstrip(‘\n’),&lt;br /&gt;
True, (255, 255, 255))&lt;br /&gt;
text2 = font.render(‘2 - ‘ + f1content[options[1]].rstrip(‘\n’),&lt;br /&gt;
True, (255, 255, 255))&lt;br /&gt;
text3 = font.render(‘3 - ‘ + f1content[options[2]].rstrip(‘\n’),&lt;br /&gt;
True, (255, 255, 255))&lt;br /&gt;
screen.blit(text1, (30, 200))&lt;br /&gt;
screen.blit(text2, (30, 300))&lt;br /&gt;
screen.blit(text3, (30, 400))&lt;br /&gt;
display.update()&amp;lt;/source&amp;gt;&lt;br /&gt;
Первые четыре строки кода говорят PyGame настроить экран. Мы&lt;br /&gt;
инициализируем PyGame, а затем велим ему создать новое окно раз-&lt;br /&gt;
мером 640 x 480 пикселей, поместив в заголовок окна соответствую-&lt;br /&gt;
щий текст. Затем создаем новый шрифт: создадим объект с именем&lt;br /&gt;
font, используя собственную систему шрифтов PyGame, и скажем&lt;br /&gt;
‘None’, что означает: нам неважно, какой шрифт использовать – пусть&lt;br /&gt;
будет стандартный системный. А размер шрифта установим 48 пун-&lt;br /&gt;
ктов.&lt;br /&gt;
Затем запускается главный цикл, выдавая десять вопросов. screen.&lt;br /&gt;
fill(0) просто заполняет экран нулевым цветом, то есть черным – это&lt;br /&gt;
очищает окно для каждого вопроса. Затем мы выбираем строку для&lt;br /&gt;
случайного слова, которое будет ответом, так же, как и в текстовой&lt;br /&gt;
версии, а затем у нас идет:&lt;br /&gt;
mainpic = image.load(f2content[wordnum].rstrip(‘\n’))&lt;br /&gt;
Это довольно большая инструкция, так что давайте разберем ее.&lt;br /&gt;
Мы создаем новый объект PyGame: картинку с именем mainpic, для&lt;br /&gt;
отрисовки на экране. Однако картинку необходимо откуда-то загрузить,&lt;br /&gt;
и это должна быть картинка для верного ответа – а мы здесь сказали,&lt;br /&gt;
чтоб Python выбрал ее случайным образом.&lt;br /&gt;
Как и до этого, в полном коде мы загружаем два текстовых файла&lt;br /&gt;
в f1content и f2content. f1content содержит список слов – в нашем слу-&lt;br /&gt;
чае, «Непал, Канада, Финляндия...». f2content содержит список имен&lt;br /&gt;
соответствующих файлов изображений: ‘nepalflag.png, canadaflag.png,&lt;br /&gt;
finlandflag.png...’. Наша переменная wordnum указывает на слово в&lt;br /&gt;
f1content, а также на имя файла связанного изображения в f2content.&lt;br /&gt;
Если wordnum равно 2, то она может указывать на «Непал» в f1content&lt;br /&gt;
и ‘nepal.png’ в f2content – вот почему записи в файлах должны попар-&lt;br /&gt;
но соответствовать друг другу!&lt;br /&gt;
Итак, загружаем нашу картинку в соответствии с именем файла из&lt;br /&gt;
f2content, удалив символ перевода строки при помощи rstrip – не то&lt;br /&gt;
PyGame нас не поймет! Далее, делаем один из трех вариантов правиль-&lt;br /&gt;
ным, как и ранее. Затем создаем три отрывка текста для отображения&lt;br /&gt;
на экране. Вот первый:&lt;br /&gt;
text1 = font.render(‘1 - ‘ + f1content[options[0]].rstrip(‘\n’),&lt;br /&gt;
True, (255, 255, 255))&lt;br /&gt;
Здесь создается новое изображение с именем text1, содержащее&lt;br /&gt;
первый случайный вариант из нашего списка слов f1content. True озна-&lt;br /&gt;
чает, что текст должен быть сглаженным, а (255, 255, 255) – цвет текста&lt;br /&gt;
в формате красный, зеленый, синий: белый, стало быть. Делаем то же&lt;br /&gt;
для других вариантов, затем отрисуем (blit) текст на экране и обновим&lt;br /&gt;
его, чтобы все отобразилось.&lt;br /&gt;
Оставшийся код с комментариями, который вы можете просмотреть&lt;br /&gt;
на нашем DVD, обрабатывает ввод пользователя. Мы проверяем, что&lt;br /&gt;
нажал пользователь – 1, 2 или 3 – и реагируем соответственно: выво-&lt;br /&gt;
дим «Верно!» и обновляем счетчик очков, или выводим «Неверно!».&lt;br /&gt;
Затем ждем нажатия Enter и вновь запускаем цикл.&lt;br /&gt;
&lt;br /&gt;
=== Завершаем ===&lt;br /&gt;
Надеемся, что это вдохновило вас покопаться глубже в вашем проекте&lt;br /&gt;
flash-карт – возможно, расширить его, включив пять вариантов вместо&lt;br /&gt;
трех. А может быть, вы хотите записывать системное время в начале&lt;br /&gt;
теста и сравнить его со временем по завершении теста, чтобы выстав-&lt;br /&gt;
лять оценку за быстроту!&lt;br /&gt;
С этой программой можно еще много чего сделать, и если у вас&lt;br /&gt;
получится что-то классное, пожалуйста, сообщите нам, и мы, возможно,&lt;br /&gt;
разместим это на нашем DVD. Если у вас возникли вопросы по данному&lt;br /&gt;
уроку, обратитесь к разделу Программирование на http://www.linuxforum.ru.&lt;br /&gt;
Наслаждайтесь!&lt;/div&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	</feed>