Почему Windows дает моему жесткому диску букву C и не A или B, например?

Синтаксис назначения (выражение «yield») позволяет обрабатывать генератор как рудиментарный сопроцесс.

Сначала предлагается в PEP 342 и задокументирован здесь: https : //docs.python.org/2/reference/expressions.html#yield-expressions

Клиентский код, который работает с генератором, может передавать данные обратно в генератор, используя его send(). Эти данные доступны через синтаксис присваивания.

send() также будет выполнять итерацию - поэтому он фактически включает вызов next().

Используя ваш пример, это то, что было бы например, использовать функциональность couputine:

>>> def test1(x):
...     for i in x:
...         _ = yield i
...         yield _
...
>>> l = [1,2,3]
>>> gen_instance = test1(l)

>>> #First send has to be a None
>>> print gen_instance.send(None)
1
>>> print gen_instance.send("A")
A
>>> print gen_instance.send("B")
2
>>> print gen_instance.send("C")
C
>>> print gen_instance.send("D")
3
>>> print gen_instance.send("E")
E
>>> print gen_instance.send("F")
Traceback (most recent call last):
  File "", line 1, in 
StopIteration

Обратите внимание, что некоторые из них теряются из-за второго yield в каждой итерации цикла, которая не фиксирует отправленные данные.

EDIT: Забыл объяснить None s, приведенные в вашем примере.

Из https://docs.python.org/2/reference/expressions.html#generator.next :

Когда функция генератора возобновляется с помощью метода next (), текущее выражение yield всегда принимает значение None.

blockquote>

next() используется при использовании синтаксиса итерации.

28
задан 10 February 2009 в 09:08
поделиться

9 ответов

Википедия дает хорошее объяснение логики букв дисков:

За исключением CP / M и более ранних версий MS-DOS, операционные системы назначают буквы дисков в соответствии со следующим алгоритм:

  1. Назначьте букву диска A: первому дисководу гибких дисков (дисковод 0), а B: второму дисководу гибких дисков (дисковод 1), если имеется.
  2. Назначьте букву диска, начиная с C: первому активному первичному разделу, распознанному на первом физическом жестком диске.
  3. Назначьте последующие буквы дисков первичному первичному разделу на каждом последующем физическом жестком диске, если таковой имеется в системе.
  4. Назначьте последующие буквы дисков каждому распознанному логическому разделу, начиная с первого жесткого диска и далее через последовательные физические жесткие диски, если они присутствуют в системе.
  5. Назначьте последующие буквы дисков любому RAM-диску.
  6. Назначьте последующие буквы дисков для любых дополнительных дисководов гибких дисков или оптических дисков.
36
ответ дан ISW 14 October 2019 в 10:13
поделиться

Это - перенесенный от исходных проектов ПК. Первоначально ПК только имели до 2 дисководов для гибких дисков, маркировал A и B. Некоторое время спустя жесткие диски были добавлены и стали диском C.

12
ответ дан excalibur 14 October 2019 в 10:13
поделиться

Буква жесткого диска - C, потому что исторически диски A и B были для дискет. Это не имеет ничего общего с языком, на котором написана операционная система.

10
ответ дан David Grant 14 October 2019 в 10:13
поделиться

Потому что A и B раньше были дисководами для гибких дисков назад в дни, когда дисководы для гибких дисков были нормой и не было никаких жестких дисков. Буква C была дана любому жесткому диску, который установил пользователь. Диски A и B были с тех пор зарезервированы для дисководов для гибких дисков. Это не имеет никакого отношения к языкам программирования.

3
ответ дан Autodidact 14 October 2019 в 10:13
поделиться

А, гибкие диски, помните те?

Вы могли бы потратить целый день на написание своего последнего приложения-убийцы, а потом обнаружить, что не смогли сохранить его, потому что оно было слишком большим, чтобы поместиться на 5,25-дюймовом Плотность диска.

Это было тогда, когда дискеты действительно были гибкими. Тонкие и хрупкие, обычно размером 5,25 или 8 дюймов, хотя первые внутренние накопители в ПК были 5,25 дюйма. Как упоминалось ранее, ранние версии MS Dos использовались для автоматического назначения диска A: первому дисководу гибких дисков и B: второму. Жесткие диски даже тогда не вписывались в ПК. Вы можете купить винчестерский жесткий диск емкостью 5 МБ, который весит около 30 кг и поставляется в большом внешнем корпусе размером почти с современный мини-компьютер с башней.

Если на вашем ПК установлены двойные дискеты, вы можете набрать команду типа «копировать a: b:», чтобы скопировать содержимое диска A: на диск B:

Но тогда все это вернулось во времени когда Билл Гейтс стоил около 10000 долларов!

3
ответ дан 14 October 2019 в 10:13
поделиться

Я сказал бы, что это потому что A: и B: диски были традиционно дисководами для гибких дисков, и ранние компьютеры потребовали, чтобы Вы загрузили использование диска загрузочного диска.

я сильно сомневаюсь, имеет ли надпись какое-либо отношение к языкам программирования.

1
ответ дан Cerebrus 14 October 2019 в 10:13
поделиться

Думайте, что DOS работал от дисковода для гибких дисков, и окна основывались на DOS, продолжал ту же конвенцию буквы диска...

1
ответ дан 14 October 2019 в 10:13
поделиться

Я думаю, что это своего рода наследие от старых версий операционных систем Microsoft, где буквы A и B были назначены для дисковода гибких дисков.

1
ответ дан Jonathan Leffler 14 October 2019 в 10:13
поделиться

источники букв дисков

*But why the letter "C"? Why not "A" or "B"? Why not "Z?"*

Неудивительно, ответ заключается в старых корнях DOS Microsoft. Задолго до того, как Windows существовал, самые совместимые с ПК компьютерные системы имели только один дисковод в нем - дисковод для гибких дисков. В то время пользователи вставили бы свой гибкий диск DOS в компьютер непосредственно перед тем, как они включили его, и компьютер запустится или "загрузится" с помощью программного обеспечения на дискете. Как первое и часто только дисковод, установленный в компьютере, гибкому диску присвоили первая буква алфавита.

0
ответ дан Ric Tokyo 14 October 2019 в 10:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: