Анимация
JavaScript
|
Главная Библионтека Sjoerd ==> 4127 Dcab ==> 7678 Jack ==> 4098 Большинство форматов работают точно так же, как и в C. Однако, если типы аргументов не соответствуют формату, интерпретатор приводит их к необходимому типу (например, выражение любого типа может быть преобразовано в строку с помощью встроенной функции str()) или, если это невозможно, генерирует исключение2. Вы можете использовать * для того, чтобы передать отдельным параметром ширину поля или точность. Заметим, что если правый аргумент кортеж, он всегда считается списком аргументов: >>> def f(x): ... print Функции передано значение "%s" % x >>> f(1) Функции передано значение "1" >>> f([1, 2]) Функции передано значение "[1, 2]" >>> # интерпретируется не так, как Вы ожидали ... f((1,)) Функции передано значение "1" 2Из этого правила есть исключение: интерпретатор не будет преобразовывать строку к числовому типу. >>> string.zfill(-3.14, 7) -003.14 >>> string.zfill(3.14159265359, 5) 3.14159265359 Использование оператора % выглядит примерно так: >>> import math >>> print Значение PI приближенно равно %5.3f. % \ ... math.pi Значение PI приближенно равно 3.142. Если в строке нужно вывести несколько значений, в качестве правого операнда используется кортеж: >>> table = {Sjoerd: 4127, ... Jack : 4098, ... Dcab : 7678} >>> for name, phone in table.items(): ... print %-10s ==> %10d % (name, phone) >>> # теперь все правильно ... f((1,)) Функции передано значение "(1,)" >>> f((1, 2)) Функции передано значение "(1, 2)" В случае длинных строк формата, Вы можете захотеть ссылаться на переменные по имени вместо их положения. Это можно сделать, используя расширенную запись в виде %( name) format, например: >>> table = {Sjoerd: 4127, Jack: 4098, ... Dcab: 8637678} >>> print Jack: %(Jack)d; Sjoerd: %(Sjoerd)d; \ ... Dcab: %(Dcab)d % table Jack: 4098; Sjoerd: 4127; Dcab: 8637678 Такая запись особенно полезна в комбинации со встроенной функцией vars() , которая возвращает словарь с переменными в текущей области видимости. Более подробно операции над строками описаны в разделе 11.2.1. 7.2 Чтение и запись файлов Встроенная функция open() возвращает объект-файл (file) и обычно используется с двумя аргументами: open( filename, mode) . >>> f=open(/tmp/workfile, wb) >>> print f <open file /tmp/workfile, mode wb at 80a0960> >>> # ошибка ... f((1, 2)) Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 2, in f TypeError: not all arguments converted В данном случае надежнее будет использовать в качестве правого операнда кортеж, состоящий из одного элемента: >>> def f(x): ... print Функции передано значение "%s" % (x,) 7.2.1 Методы объектов-файлов Примеры в этом разделе рассчитаны на то, что объект-файл f уже создан. f .read(size) считывает и возвращает некоторое количество данных из файла. Аргумент size не является обязательным. Если он опущен или отрицательный, будет считано все содержимое файла, в противном случае, будет считано не более size байт данных. По достижении конца файла, возвращается пустая строка (). >>> f.read() # Считываем все содержимое файла This is the entire file.\012 >>> f.readO f .readlineO считывает из файла одну строку. Возвращаемая строка всегда заканчивается символом новой строки ( \n), за исключением последней строки файла, если файл не заканчивается символом новой строки. Это делает возвращаемое значение недвусмысленным: если readline() возвращает пустую строку - значит, достигнут конец файла, в то время как пустая строка будет представлена как \n. >>> f.readline() # Считываем первую строку This is the first line of the file.\012 >>> f.readline() # Считываем вторую строку Second line of the file\012 >>> f.readline() # Достигли конца файла f .readlinesO считывает все содержимое файла, и возвращает список строк. Первый аргумент - строка, содержащая имя файла, второй аргумент - строка, содержащая несколько символов, описывающих режим использования файла. Режим может быть r, если файл открывается только для чтения, w - только для записи (существующий файл будет перезаписан), и a - для дописывания в конец файла. В режиме r+ файл открывается сразу для чтения и записи. Аргумент mode не является обязательным: если он опущен, подразумевается r. В Windows (а в некоторых случаях и в Macintosh) файлы по умолчанию открываются в текстовом режиме - для того, чтобы открыть файл в двоичном режиме, необходимо к строке режима добавить b. Следует помнить, что двоичные данные, такие как картинки в формате JPEG и даже текст в UNICODE, при чтении из файла или записи в файл, открытый в текстовом режиме, будут испорчены! Лучший способ оградить себя от неприятностей - всегда открывать файлы в двоичном режиме, даже на тех платформах, где двоичный режим используется по умолчанию (возможно у Вас когда-нибудь возникнет желание запустить программу на другой платформе). 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [ 18 ] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |