Какой типаж какая экспрессия: Экспрессия клаудина-1 в клетках эпителиальных опухолей кожи

Содержание

«Иван Васильевич меняет профессию», экспрессию и время: классическая рецензия «Искусства кино»

75 лет исполнилось актрисе, народной артистке РФ Наталье Селезневой. Одна из самых заметных ее ролей была в фильме «Иван Васильевич меняет профессию», гайдаевской экранизации булгаковской пьесы «Иван Васильевич». Об этой образцовой эксцентрической комедии в 1974 году для «Искусства кино» писал критик Андрей Зоркий (ушел из жизни в 2006-м).

Итак, случилось еще одно несчастье. Еще одно литературное произведение известного писателя подверглось киноэкранизации.

Горестная картина! Плачет небо. Качаются на холодном ветру мокрые ветви деревьев. Прислонившись пылающим лбом к стеклу, по которому бьет осенний дождь, стоит опечаленный ценитель искусств и шепчет сокрушенно: «Ах, Иван Васильевич, Иван Васильевич! Что же это с тобой-то сделали?!» Зададимся и мы этим вопросом: а в самом деле, что же такое сделали с беззащитной булгаковской комедией на экране?

Вот, пискнув, дернулось, как резиновое, игрушечное, ухо стрельца. Вот на лестничной площадке огромного московского дома одуревший от ужаса, запутавшийся в своем царском одеянии среди детских колясочек, Иван Васильевич жалобно бибикает в клаксон педального автомобильчика. Вот время с грохотом сдвигает стены между XVI веком и двухкомнатной квартирой изобретателя Тимофеева, а на полосатеньких обоях, словно вобрав в себя дрожь этого глобального катаклизма, покачивается на гвоздике картина «Иван Грозный и сын его Иван». Да нет всего этого в пьесе Булгакова! Нет в 58 страницах булгаковской комедии и многих других эпизодов и сцен, с которыми столкнется зритель в ее экранном варианте.

Поэтому начнем с самого главного — с правомерности гайдаевского прочтения пьесы, с совпадения (или несовпадения) стилистики, комедийности и самого духа обоих произведений. Попробуем разобраться в том, потеряла или не потеряла на экране булгаковская пьеса? Надо ли нам плакать или — вместе со зрителем — смеяться?

Но прежде, для разминки, как в КВН, вот такая арифметическая задача. Из пункта А и из пункта В навстречу сатирической прозе Ильфа и Петрова вышли режиссер Швейцер и режиссер Гайдай. Каждый из них экранизировал по одному роману писателей, сняв по две киносерии. Спрашивается: чья экранизация лучше, точнее и ближе к романам? Миллион компетентных зрителей ответит — экранизация «Золотого теленка». Миллион столь же компетентных зрителей — экранизация «Двенадцати стульев». А третий миллион, быть может, скажет: «Вот если бы за Ильфа и Петрова взялся третий режиссер имярек!..» И вы знаете, все «три миллиона» по-своему правы.

Что же ближе прозе Ильфа и Петрова — сатирическая повествовательность или сатирическая гротескность, ирония или юмор, фантазия или изящный расчет? Все ближе. И на десяток точных прикосновений режиссера Швейцера к экранизируемой прозе приходится десяток точных прикосновений режиссера Гайдая (впрочем, у обоих были прикосновения и неточные, нечуткие).

И они разные — эти прикосновения! Их разнит индивидуальность художника, который становится новым, кинематографическим соавтором произведения. Естественно, что от каждой экранизации мы ожидаем точности, а скорее верности прочтения литературного оригинала. Но не следует забывать и о том, что прочтение — это тоже творчество, несущее в себе приметы и черты режиссерской индивидуальности.

Леонид Гайдай на съемочной площадке

«Иван Васильевич» на экране изменил координаты — действие переместилось из 30-х годов в 70-е.

Исчезли тесные московские дворики, раскрытые окна коммуналок, где «все на подоконниках лежат и рассказывают такую ерунду, которую рассказывать неудобно», исчезли патефоны, хрипящие радиорупоры, очереди за селедками, засаленные домовые книги, по-своему налаженное житье-бытье.

Конечно, вроде бы жалко терять благодатную для кинематографа фактуру, некогда облюбованную и Булгаковым, и Зощенко, и Ильфом вместе с Петровым. Однако очень важно помнить о том, что Булгаков отправлял на рандеву с опричниками в кошмарное историческое прошлое своих современников. В этом и заключалась острота и комедийная соль его произведения. Сегодня же самый мир булгаковских героев стал для нас достаточно отдаленным прошлым. Машине времени, стартуя в царство Грозного, пришлось бы совершить еще один сложный вираж, преодолеть еще один барьер минувшего. Прозрачно ясный булгаковский сюжет усложнился бы, зритель основательно бы запутался в том, кто и куда летит и, не дай бог, посчитал бы, что он имеет дело с историей, вовсе к нему непричастной.

Вот почему на экране возникла вся наша современная «лепота» (как выразился, озирая Москву с балкона, царь Иоанн Васильевич), вот почему взметнулись московские небоскребы, помчались современные лифты и милицейские машины.

Итак, «Иван Васильевич» меняет координаты и атрибуты времени. Процесс этот вовсе не механический. Он не сводится лишь к тому, что радиорупор заменяется телевизором, патефон — магнитофоном, горный дубняк — столичной, управдом — активистом ЖЭКа. Меняются некоторые смысловые координаты. Машина времени переносит в прошлое несколько иной экипаж. И на экране начинает вырисовываться несколько иное произведение.

Поначалу отметим сценарную выдумку, которая органично перенесла сюжет из 30-х годов в 70-е, которая остроумно и «железно» соединила булгаковскую историю и гайдаевскую интерпретацию.

В поисках сближения с нашим временем, в поисках остроумной отправной точки для повествования авторы сценария Бахнов и Гайдай «пристегнули» к сюжету «Ивана Васильевича» архипопулярного в зрительских массах Шурика, заставив именно его изобрести машину времени.

Кому был известен взлохмаченный изобретатель Тимофеев? Небольшому кругу читателей и театральных зрителей. А Шурика знали все! Студент и ночной сторож, герой той, помните, «кавказской кампании», один из популярных комедийных героев нашего времени, он, разумеется, мог изобрести и машину времени. И уже с этого забавного предположения началась новая кинокомедия.

Поставив столь неожиданный, броский, эксцентрический автограф на старой театральной рукописи, кинорежиссер Гайдай тем самым как бы заявляет свое право по-своему читать и интерпретировать текст, по-своему смеяться, перенося его на экран.

«Иван Васильевич» меняет… экспрессию.

Азбука гайдаевского киноязыка — эксцентрический трюк, каламбур, мгновенный аттракцион, фокус — стремительный, броский, парадоксальный.

Вот дантист Шпак склонился над пациентом. Мгновение — и словно отбойный молоток заработал во рту у бедняги. Ходят ходуном волосатые руки эскулапа, ходит ходуном зубоврачебное кресло — вибрация преувеличена в тысячу раз, извлечена наружу — в зрительный зал комедии.

Отчаянно мяукающего черного котенка засасывает с хвоста пылесос. Освободившись от дьявольского притяжения, котенок оголтело вскакивает на карниз и сваливается оттуда в аквариум с рыбками. Шурик пытается завязать в узел обезумевшего домашнего зверя — тот вдруг исчезает, странным образом превращаясь… в «кошачий узор» на полотенце.

Вот резкий и энергичный монтажный стык: с черно-белых кадров, с лежащего на полу после взрыва контуженного Шурика — на яркий цвет, на синее Черное море, на белоснежные корабли, на длинноногую Зиночку, поющую об ослепительной любви землян XX века, на вдохновенно созидающего свой очередной шедевр кинорежиссера Якина.

У Гайдая юмор задиристый, ярмарочно-звонкий. И естественно, что рождает он в зале точно такой же отзвук. На лучших, самых смешных сценах «Ивана Васильевича» у зрителя — помните чеховское определение — от хохота отскакивают все пуговицы на жилетке.

В одном из романов Чапека существовал герой, пальцы которого физически ощущали энергию, скрывающуюся в статике окружающих предметов. Кажется, тем же даром (только в комедийном плане) наделен Гайдай. Он взрывает статику с энтузиазмом и непреклонностью Шпака, поминутно включающего свою бормашину. Пластику обыденных бытовых движений режиссер энергично переводит в пластику эксцентриады.

Вот Жорж Милославский безуспешно пытается вскрыть сейф в квартире дантиста Шпака. Эта вполне бытовая процедура становится цирковым аттракционом: мелькают отмычки, руки, театральная физиономия жулика; каскадная музыка словно хохочет над неудачником, камера бойко осматривает интерьер, походя сравнивая прелестные формы античных мадонн и современных манекенщиц. Чисто гайдаевская киносценка.

Вот в царскую палату входит шведский посол со свитой. И тотчас начинается аттракцион — каскад поклонов, пританцовываний, реверансов, а музыка, смеясь, подсказывает: ведь это же «собачий вальс» фальшивых любезностей, смехотворных условностей парадного этикета.

Обращаясь к пьесе Булгакова, Гайдай отыскивает скрытые узлы движения, прощупывает паузы, «развинчивает» реплики и ремарки и, обнаружив в них колесики и винтики эксцентрического механизма, пускается в стремительный, лихорадочный, пестрый, вовсе не булгаковский бег.

Мчатся опричники, мчатся милиционеры, мчатся по лестницам Шурик и Иван Васильевич (их бег стилизован под пластику немых лент), мчится на черном киностудийном авто режиссер Якин с мимолетной спутницей жизни, мчатся Бунша и Милославский, мчатся санитары. В пьесе действие замкнуто в локальные ремарки: Бунша, кидаясь на стену, требует прекращения опыта; зловещий шум и набат; в окно влетает стрела; грохот в дверь, голос «Отворяй, собака!»; грохот; Милославский надевает кафтан; Бунша надевает царское облачение; дверь раскрывается, вбегают опричники и с ними дьяк. Остолбеневают. Гайдай на этой основе дает целый разворот комедийных событий, стремительно разматывает длинную ленту киноэксцентриады.

Кинематограф разламывает тесный коробок сцены — мы выходим на площадь перед Кремлем, видим опричников, суматошно идущих на штурм царской палаты. Постановщик искусно и смешно отыгрывает детали: сразу несколько стрел, пущенных «покойниками», как полагает поначалу жэковский активист, с визгом впиваются в стену над головой Бунши, пришпиливают его шляпу, и та, выразительно покачавшись, падает ему на голову. 

Смешные, увлекательные кадры связаны, как всегда, с погоней. Неожиданно беглецы и опричники оказались рядышком, бок о бок на какой-то высоченной арке; раз! — Бунша и Милославский, перекрестясь, приготовились к отчаянному прыжку; два! — опричники, как горох, посыпались вниз; три! — Бунша и Милославский остались преспокойненько стоять на арке… И снова понеслись в карьер!

Вот снятый на самом общем плане пробег по галереям Кремля. Вдоль белых стен весело, мультипликацнонно мелькают красные фигурки опричников. Проносится погоня мимо Бунши, присевшего в изнеможении и чудом каким-то оказавшегося схожим с одной из церковных скульптур. Проносится погоня мимо Милославского, столь же изящно и скульптурно вписавшегося в кремлевский интерьер… Еще не успел смолкнуть хохот зрительного зала, а Бунша уже взлетел на колокольню, запутался в веревках, и загудели колокола, вызванивая малиново «Чижик-пыжик» и… «Подмосковные вечера».

Подобные эксцентрические аттракционы разматываются по всему полю картины. Они слагают самое сильное, самое смешное в гайдаевских лентах — их комедийную динамику, ритм. Здесь подлинная стихия гайдаевской комедийности.

Леонид Гайдай, на мой взгляд, не принадлежит к тем мастерам кинокомедии, которые как бы растворяются в материале, всякий раз заражаясь своеобразием литературных оригиналов. Напротив, заметьте, как сблизил на экране Гайдай столь разные произведения — «Двенадцать стульев» и «Ивана Васильевича». В кинематографическом контексте «Двенадцать стульев» И. Ильфа и Е. Петрова ближе к «Ивану Васильевичу» М. Булгакова, чем к «Золотому теленку», которого экранизировал М. Швейцер, ближе именно соавторством Гайдая.

Дело в том, что Гайдай любит и умеет снимать совершенно определенный, ясно очерченный тип кинокомедий. И для него снять фильм чисто «по-ильфовски» или чисто «по-булгаковски» так же неинтересно, а то и невозможно, как снять комедию «по-рязановски» пли «по-пырьевски». Вот почему, облюбовав литературный материал, режиссер семимильными шагами начинает двигаться от него к себе, к своему, гайдаевскому способу прочтения сценария, пьесы, книги…

Это вовсе не означает неизбежность удаления от литературного первоисточника. Оригинальность и индивидуальность прочтения может и приближать нас к оригиналу, открывая в нем новые, до поры до времени скрытые от глаз грани. И там, где гайдаевские краски точны, где гайдаевская эксцентрика безупречна — там в фильме столь же выразительный (только новый, кинематографический) язык булгаковского «Ивана Васильевича».

У Булгакова Иван Васильевич, перенесясь в наш век, поначалу «на чердаке орет», вовсе невидимый зрителю. У Гайдая же он, конечно, несется опрометью по лестницам дома, вскакивает в лифты, отворяет их «крестом животворящим», воюет половой щеткой, как царским посохом… И эта партитура действий, экспансивно развернутая на экране, подобно многим уже упоминавшимся мною эксцентрическим эпизодам, — прямое попадание в булгаковскую комедийную фантасмагоричность.

Такие прямые попадания — это всякий раз новые волны смеха в зале, это заметное увеличение общей массы смешного в комедии. В экранном «Иване Васильевиче» рядом с россыпью истинно комедийных разговорных сцен существует россыпь истинно комедийных немых эпизодов.

Выше говорилось о том, что решение авторов перенести исходное действие кинокомедии в сегодняшний день разумно и оправдано. Однако в этой переброске по-настоящему повезло лишь двум персонажам: Шурику и Ивану Васильевичу.

Шурик, став действующим лицом кинокомедии, пережил, пожалуй, самые удивительные приключения в своей жизни. Иван Васильевич встретился с бытовой техникой наших дней, и она предоставила ему много поводов для комедийно отыгрываемого изумления. Лифт и телевизор, магнитофон (включаемый, помните, несколько неожиданным образом) с песенкой Высоцкого, репинская репродукция и современный спортивный костюм — все это дало материал для новых остроумных блесток, украсивших киноповествование.

Но, увы, в сегодняшних эпизодах у Гайдая нет столь наблюдательного и иронического поводыря, как Булгаков. В подъезде высотного дома герои сатирической пьесы мельчают (разумеется, как комические персонажи), теряют социальные характеристики, становятся вполне ординарными персонажами ординарного киноводевиля. Бунша, лишившись даже своей скромной административной должности (а вместе с ней и «административного восторга»), глядится довольно бесцветным персонажем. Жорж Милославский смотрится всего лишь экзотическим жуликом, заглянувшим «на дело» из 30-х годов. На экране показана не среда, а компания. И неслучайно, что в огромном московском доме царит почти вакуумная пустота. В доме удивительно чисто и поразительно пусто — в нем словно бы вместе с лестницами и полами пропылесосили сатиру.

К счастью, эпизоды эти в кинокомедии носят экспозиционный характер. К счастью, очень скоро на современном горизонте появляется Иван Васильевич, и тотчас парадоксальность ситуаций начинает высекать живые, искры из персонажей. К счастью, Шурик без проволочек отправляет комедийных героев в прошлое, а там… там поправка на 30 лет, право же, не столь существенна.

Конечно же, самое смешное, истинно гайдаевское и, как это ни странно, истинно булгаковское в кинокомедии — это цепь приключений, разворачивающихся в прошлом. Здесь мир булгаковской сценической фантазии развернут кинематографически, остроумно передиктован в яркое эксцентрическое действо. Чего стоят — об этом мы уже говорили — пробеги по галереям Кремля опричников и «демонов», спасающихся от погони. Чего стоит отъезд опричников «на рать», когда гремит над конницей молодецкая, суровая и до чертиков смешная песня: «Кап, кап, кап. .. Из ясных глаз Маруси капают слезы на копье».

А великолепное царское застолье с махонькой кучкой «заморской» баклажанной икры на огромном блюде и леденящими душу домашними закусками! А появляющиеся в боярском собрании царь-Бунша и Жорж Милославский! А эстрадный номер гусляров, которых Милославский заставляет исполнять нечто темпераментно-магомаевское! А танцульки в царских хоромах!

…Спектр «исторических» приключений Бунши и Милославского, в общем-то, невелик: опасности и стремление порезвее драпануть от опасностей, искусы и желание послаще куснуть от всякого куска, будь то черная икра, сдобная царица или хотя бы даже державный престол. Из всего этого и слагается короткая жизнь наших отрицательных героев, которую они проживают искренне и простодушно, оставляя после себя ровное, и… пустое место.

Если Юрий Яковлев словно скучает, мается, играя там, в XX веке Буншу — назойливого зануду без определенных занятий, то в царских палатах он расправляет крылья. Его панический звонок в милицию на трепетном «разломе двух эпох» («не могу жить без милиции ни одной секунды!»), его смиренная подпись под царским указом: «и. о. царя Ивана Грозного» и жэковская печать, жирной кляксой украсившая благородный пергамент, его ужас перестраховщика и восторг новоиспеченного самодержца… В забредшем в XVI век жэковском активисте Бунше стародавние соблазны пропускаются через жалкие терзания его обывательского духа. И это очень смешно. А когда пышное застолье, да изрядная доза кардамонной, да близость царицы Марфы развязывают язык Бунше и заставляют его выразить классовую солидарность с крымским царем, мы понимаем: сатирический портрет обывателя написан, булгаковский злой комизм вернулся на экран под веселый перезвон гайдаевских шутовских колокольчиков.

Жорж Милославский (Леонид Куравлев), наоборот, против пьесы оказывается более принципиальным политиком, чем Бунша-Грозный, и ни в какую не хочет уступать шведам Кемь. Это новая и довольно изящно отредактированная черточка! Однако тонко и дальновидно направляя деятельность царя-Бунши, общего выражения их двойного портрета она не изменяет: Жорж Милославский в царских покоях ворует еще энергичнее и несравненно удачливее, чем в квартире дантиста Шпака.

Наконец, дьяк (Савелий Крамаров). В нем воплощена такая радость и полнота холуйского бытия, такая готовность отбивать лбом поклоны, такая гордость за царский пир и за царский гнев («был у нас один толмач-немчин, да мы его надысь в кипятке сварили»), что если Жорж Милославский плавает в XVI веке как рыба в воде, то Федя-дьяк млеет, как карась в сметане.

Короткое путешествие авторов кинокомедии по стогнам современности не обошлось без ощутимых потерь. Зато переброска с современного плацдарма в XVI век оказалась весьма остроумной и плодотворной.

Некоторые эпизоды фильма в этой части к тому же можно рассматривать как необычную эксцентрическую ретроспекцию — из прошлого в сегодняшний день. Вот почему, говоря о том, что «Иван Васильевич» меняет экспрессию, я имел в виду не только смену внешних выразительных средств.

Как и во многих эксцентрических кинокомедиях, в «Иване Васильевиче» не содержится прямого назидания, натужной, венчающей историю морали. Но, когда перед зрителями проходит пестрая вереница комических или гротесковых персонажей, мы узнаем в них (с улыбкой!) и нечто реальное, знакомое нам, увы, по жизни.

Так потеряла или не потеряла пьеса в экранизации? Поставив этот вопрос, я не стремлюсь к однозначному ответу на него. Просто я хотел напомнить и развить элементарную (как мне кажется) мысль: в искусстве экранизации (и, быть может, в особенности экранизации комедийной) художник всегда отражается в другом художнике, произведение отражается в другом произведении.

Текст Андрея Зоркого «Иван Васильевич меняет… экспрессию» был впервые опубликован в журнале «Искусство кино» (№1, 1974).

леонид гайдай

Поделиться

FacebookВконтактеTwitter

FacebookВконтактеTwitter

Ki-67 (MIB-1) экспрессия, иммуногистохимическое исследование (оценка пролиферативной активности по экспрессии Ki-67 (MIB-1); Ki-67 (MIB-1) by Immunohistochemistry, IHC)

Метод определения Гистологическое исследование биоптатов опухоли согласно гистологической классификации ВОЗ с окрашиванием гематоксилином-эозином. Иммуногистохимическое исследование индекса пролиферативной активности с применением моноклональных антител к Ki-67 (MIB-1) (пероксидазный и авидин-биотиновый методы).

Доступен выезд на дом

Онлайн-регистрация

Комплексное исследование биоптатов, включающее морфологическое описание и оценку пролиферативной активности клеток, которое используют в целях диагностики − определения биологического потенциала новообразований человека.

В современной онкоморфологии ведется поиск критериев, позволяющих верифицировать степень гистологической и биологической злокачественности с максимальной объективностью. Учитывая, что пролиферативная активность клеток опухолей человека коррелирует со степенью их гистологической и биологической злокачественности, в последние годы ИГХ-определение индекса пролиферации при исследовании экспрессии Ki-67 (MIB-1) является необходимым рутинным исследованием при онкологических заболеваниях. 

Специфичным и оптимальным для широкого использования в патологоанатомической практике маркером пролиферации является антиген Ki-67. Ядерный антиген Кi-67 впервые описан Gerdes и соавторами в 1983 году, он состоит из двух полипептидных цепей с молекулярной массой 345 и 395 кДа. Это основная часть нуклеарного матрикса, в течение интерфазы ассоциированная с хромосомами фазы митоза. Ki-67−димерная молекула, имеющая тесную связь с 10-й хромосомой, конкретная роль этого протеина в процессе клеточного деления до сих пор точно не выяснена. Экспрессия Кi-67 позволяет выделить опухолевые клетки, находящиеся в активной фазе клеточного цикла, на всём его протяжении (G1-, S-, G2- и M-фазы). Кi-67 отсутствует только в G0-периоде. Активно пролиферирующие опухолевые клетки представляют собой «фракцию роста» новообразования. Пролиферативная активность является ведущим фактором как в механизме злокачественной трансформации клеток, так и в биологическом поведении уже возникших опухолей. Это одна из наиболее важных характеристик фенотипа опухоли, в значительной степени определяющая скорость роста новообразования, риск метастазирования, потенциальный ответ на лечебные мероприятия и исход онкологического заболевания.

Многие факторы, влияющие на течение и исход онкологических заболеваний, свое патогенетическое действие на опухоль опосредуют через изменение пролиферативной активности. 

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

Индекс пролиферативной активности в различных опухолях имеет разные значения, являясь при этом независимым прогностическим признаком, определяющим клиническое течение и прогноз заболевания. При Ki-67 менее 15% опухоль считается менее агрессивной, при показателе более 30% опухоль считается высоко агрессивной. При высоком уровне (выраженном в %) Ki-67 опухоль с более высокой вероятностью ответит на химиотерапевтическое лечение. При низком его уровне опухоль, например, молочной железы, при определённых условиях лучше отреагирует на гормонотерапию.

IC210: Типы и выражения III

IC210: Типы и выражения III

Все это выражение.

.. почти Почти все в программе C++ представляет собой выражение . Ан выражение — это текстовая часть исходного кода, которая может быть оценена как создать объект, который имеет тип
и значение .

Помните: Каждое выражение имеет тип и значение .

Арифметические выражения
Самые известные выражения — арифметические. Например, если к представляет собой int , которому присвоено значение 4,
(k - 2)*7 // тип: int, значение: 14
 
является выражением типа int и значением 14.
Выражения присвоения
Один из примеров того, что менее очевидно является выражением:
k = 5 // тип: int, значение: 5
 
Здесь k снова является переменной типа int . Тип этого выражения — int , а значение — 5.

В общем 9Выражение присваивания 0004 имеет тот же тип, что и присваиваемый объект, и то же значение, что и этот объект после задание выполняется. Таким образом, как ни странно, если x является переменная типа double

, затем

(x = 3.4)*2.0 // тип: double, значение: 6.8, есть побочный эффект
 
имеет смысл. В частности,
  • Это выражение типа удваивает , и после его оценки оно имеет значение 6,8.
  • Выражение имеет побочный эффект ; то есть он изменяет значение переменной x на 3,4.
Менее очевидные выражения
Другой менее очевидный пример:
Как мы видели в прошлой лекции,  cout  является объектом типа  острейм  .
  • Выражение cout << x также имеет тип ostream , а его значение равно cout (например, умножая ноль на что-либо, вы все равно получаете ноль).
  • Однако там является побочным эффектом для вычисления этого выражения; то есть, x выводится на экран!
Примечания. Значение выражения может быть определено во время выполнения.

Часто значение выражения не может быть определено пока программа не запустится. Например, посмотрите на код ниже:

 инт к;
цин >> к;
cout 

Каково значение выражения k+7 ? Ну, это зависит от того, что пользователь вводит для ввода . Это что-то, что не может быть известно, пока программа не будет запущена.

Тип выражения определяется во время компиляции.

Однако тип выражения k+1 — это то, что мы узнайте перед запуском программы: это int . Большую часть времени (особенно для подмножества C++, на котором мы сосредоточимся) тип выражение известно на этапе компиляции , т.е. при компиляции программы, в отличие от его запуска. Из-за этого C++ называют «статически типизированный" язык.

Что не является выражением?

В этот момент может показаться, что все является выражением, но это не так.
истинный. Например:
  • Заявление : Что-нибудь с '; '(точка с запятой) в конце - оператор , не выражение. Таким образом, в то время как k = 4 является выражением, используемым в (k=4)*3 будет оцениваться как 12, оператор k = 4; как строка кода, заканчивающаяся точкой с запятой, не является выражением.
  • Объявление переменной : Объявления переменных, что-то вроде int k например, не являются выражениями - независимо от того, ; есть.
Тем не менее, большинство вещей являются выражениями, и понимание этого факта и способность определение типов и значений выражений является ключом к пониманию C++ ... и почти любой другой язык программирования.

Когда типы сталкиваются -- неявное преобразование типов

Все становится интереснее, когда выражения включают разные типы.
В арифметических выражениях: повышение
Рассмотрим следующий код:
двойной х = 3,3; интервал к = -2; // x*k : тип и значение?
Каков тип и значение выражения x*k ?
Ответ (перетащите мышью):
 // x*k -- тип: double, значение: -6,6 
Объяснение: C++ умеет умножать два объекта int и умеет умножить два объекта double , но он не знает, как умножать один из каждого. Однако он понимает, что int может быть преобразовал в , двойное , и наоборот. Таким образом, он преобразует один и выполняет умножение двух объектов одного типа. Но каким образом должно идти?
логический б = истина;
символ с = 'а';
инт п = 1;
двойной х = 2,1;
// b+c : тип int
// b+n : тип int
// c+n : тип int
// b+x : тип double
// c+x : тип double
// n+x : тип double
 

Для арифметики типы всегда преобразуются в том направлении, которое дает

больше всего. точность — это называется продвижением типа .

В частности, направление следующее:

→ целое → двойной
 
Итак, в нашем примере выше int преобразуется (или продвигается) к дублю, и операция выполняется над двумя дублями. Это не было бы имеет почти такой же смысл наоборот, не так ли? Еще несколько примеров справа:
В выражениях присваивания: следует за типом назначенная переменная
Это неявное преобразование типов (неявное значение, что это происходит автоматически за кулисами, без вашего участия ничего непосредственно) происходит в других случаях. Единственный на нас прямо сейчас влияет назначений . Вы можете назначить объект одного тип к объекту другого типа, если C++ знает, как сделать преобразование. Если это не так, компилятор сообщит вам об этом.

Так, например, рассмотрим следующий код:

двойной х = 3,3;
инт к;
В приведенном выше выражении k=x относится к типу int со значением 3 . C++ усекает double s при преобразовании в интервал с.

Явное преобразование типов

Другой способ преобразования типов среди встроенных типов (int, double, char, bool) должен следовать синтаксису языка C, который должен предварять выражение, которое вы конвертируете с новым типом в круглых скобках. Для Например, если k — это int , и вы хотите преобразовать его в эквивалент двойной , вы бы написали:

 (двойной)k 

который "приведет" k к типу двойной . C++ фактически добавляет C функциональности, т.е. буквально C плюс некоторые другие вещи. Итак, C конструкции типа

(двойной)к все работает.

У нас также есть явное преобразование типа . Предположим, например, что м и n равны int с, n больше. Мы хотели бы распечатать значение м/н . Хорошо,

cout << m/n << endl;

просто распечатает ноль! (Убедитесь, что вы знаете, почему!) Мы хотели бы получить некоторое дробное значение, другими словами, мы хотели бы, чтобы эти значения рассматривались как двойной с. Чтобы явно преобразовать их в double s сначала мы напишем:

cout << double(m)/double(n) << endl;

Быстрая проверка: Можете ли вы объяснить, какой тип и значение вы получаете с помощью следующего кода?

 1 / двойной(2) 
Ответ (перетащите мышью): он имеет тип double и значение 0,5. Целое число 1 неявно повышается до типа double до того, как операция деления.

Явное преобразование может оказаться сложным позже, но на данном этапе просто, как , записывая имя нового типа, за которым следует старый объект в () .

Некоторые правила быстрого преобразования
int → double : Это делает именно то, что вы ожидаете.
double → int : это просто усекает значение, это означает, что все, что после десятичной точки, просто получает нарезанный. Вы можете попасть в беду, если двойное значение слишком большой.
bool → int : true переходит в 1, false переходит в 0.
int → bool : 0 переходит в false, все остальное идет к истинному;
int → char : если int находится в диапазоне 0-127, значение char определяется таблицей ASCII;
char → int : значение int определяется ASCII-таблица;

Представление данных в компьютере

Биты и байты

Вспомните, что внутри компьютера все состоит из 0 и 1! (А бит просто значение 0/1. ) Но как все эти вещи могут - char с, int с, bool с и double s - быть представлено нулями и единицами? Наш понимание типов будет действительно зависеть от способности ответить на эти вопросы. Память компьютера — это просто одна длинная последовательность битов. Однако эти биты организованы в блоки по 8, называемые байта . Чтобы подчеркнуть, байт состоит из 8 бит. В байт, мы можем представить числа от 0 до 255.

Примечание: Мы не будем подробно рассматривать эту тему, так как ее охватывает SY110. Вы ожидали, что разберетесь в битах и ​​байтах, двоично-десятичное и десятично-двоичное преобразование, и как ASCII table определяет сопоставление между символами и байтами. Что здесь в примечания - это всего лишь краткий обзор этого.

Мы настоятельно рекомендуем вам ознакомиться с классом на Цифровые данные из Сайт SY110. Вот ссылка на полную таблицу ASCII.

Представление

bool s Тип bool — это всего лишь способ интерпретации байта память . Если все 8 бит байта равны нулю, интерпретация как логическое значение ложно . В противном случае интерпретация bool правда .

Представляет

символов с Тип char - это просто , другой способ интерпретации байта. памяти! Например, байт 01100001 интерпретируется как символ и . Такая интерпретация байтов как символов называется кодировка ASCII и эта таблица, например, показывает вам все это. Интерпретация 01100001 как числа в двоичном виде мы получаем число 97, и если вы посмотрите 97 в таблице, вы увидите, что он соответствует символу a .

Мы уже видим одну из фундаментальных идей вычислительной техники, отличающуюся типы объектов могут быть представлены путем обработки последовательностей 0 и 1 по-разному. Вот почему C++ должен отслеживать типы объекты, поэтому он знает, как интерпретировать содержимое куска памяти связанные с каждым объектом. На самом деле, вы можете посмотреть на char как просто небольшое целое число (Я говорю маленький, потому что 8-бит позволяет нам только диапазон [0,255]). Этот интерпретация в значительной степени говорит нам, чего ожидать от конверсий между char с и int с.

Арифметика на char s . Одна интересная особенность этого соответствия между символами и числами заключается в том, что такие утверждения, как

 каут 
иметь смысл.
  • Глядя на таблицу ASCII, мы видим, что 'b' соответствует числу 98, а 'a' соответствует номер 97.
  • Итак, C++ обрабатывает это как вычитание int задача 98 - 97, которая оценивается как 1.
  • Таким образом, тип и значение этого выражения — int и 1.
На самом деле буквы алфавита расположены по порядку, так что а равно 97, б равно 98, ..., z равно 122. Итак,
 каут 
будет выводить
 101 и 

Представляет

интервал с

Технически int 5 может быть представлен как

 00000000 00000000 00000000 00000101 

. .. или это может быть представлено как

 00000101 00000000 00000000 00000000 

... в зависимости от того, что называется "порядком байтов" базовая машина. Это конкретное различие выходит за рамки охват этого курса, но вы столкнетесь с ним в последующих курсах CS/IT. курс.

Полный int на вашем ПК состоит из 4 байтов или 32 бит, поэтому он может представлять очень большие числа. Мы не собираемся вникать в вопрос о том, как отрицательные числа представлены в двоичном формате. По сути int выглядит как представление двоичного числа, которое мы только что говорили, но в 32 битах. Итак, int 5 представлен в компьютере как:

00000000 00000000 00000000 00000101

... где я разбил все на байты, чтобы было немного яснее.

Представляет

двойной с Двойной занимает 8 байт или 64 бита. Формат более сложна, однако, и мы не будем останавливаться на ней здесь, за исключением того, что она представляет собой двоичную версию привычной научной нотации. 3.) Достаточно сказать, что двойной 1.0 есть представлен следующими 64 битами:
00000011 11111111 11111111 00000000 00000000 00000000 00000000 00000000
 

Проблемы

  • Преобразование радианов в градусы, минуты и секунды. Это требует преобразования между типами! Посмотри, сможешь ли ты определить, где они происходят!
  • Шифрование Ceasar Shift Код Ceasar Shift — это ранний метод зашифрованной связи. Эта программа реализует его для 4-буквенные сообщения. Это требует понимания оператора мода (%), и соответствие между символами, закодированными в ASCII, и числами.
  • Калькулятор среднего балла

Знаете ли вы...

Документация Learning with Python 2nd Edition

2.1. Значения и типы данных

Значение — это одна из фундаментальных вещей — как буква или число — которыми манипулирует программа. Значения, которые мы видели до сих пор, равны 2 (значение результат, когда мы добавили 1 + 1), и «Hello, World!».

Эти значения относятся к разным типам данных : 2 является целым числом , и "Привет, мир!" это строка , так называемая, потому что она содержит строку буквы. Вы (и интерпретатор) можете идентифицировать строки, потому что они заключено в кавычки.

Оператор печати также работает для целых чисел.

 >>> напечатать 4
4
 

Если вы не уверены, какой тип имеет значение, интерпретатор может указать ты.

 >>> type("Привет, мир!")
<тип 'строка'>
>>> тип(17)
<тип 'целое число'>
 

Неудивительно, что строки относятся к типу стр и целые принадлежат введите целое число . Менее очевидно, что числа с десятичной точкой принадлежат к типу называется с плавающей запятой , потому что эти числа представлены в формате, называемом с плавающей запятой .

 >>> тип(3.2)
<тип 'плавающий'>
 

Как насчет таких значений, как «17» и «3,2»? Они похожи на числа, но они заключены в кавычки, как строки.

 >>> тип("17")
<тип 'строка'>
>>> тип("3.2")
<тип 'строка'>
 

Это струны.

Строки в Python могут быть заключены либо в одинарные (‘), либо в двойные кавычки (""):

 >>> type('Это строка.')
<тип 'строка'>
>>> type("И это тоже.")
<тип 'строка'>
 

Строки с двойными кавычками могут содержать внутри одинарные кавычки, как в «борода Брюса», а строки в одинарных кавычках могут иметь двойные кавычки. внутри них, как в «Рыцарях, говорящих «Ни!»».

Когда вы вводите большое целое число, у вас может возникнуть соблазн использовать запятые между группы из трех цифр, например, 1 000 000. Это не допустимое целое число в Python, но легально:

 >>> напечатать 1 000 000
1 0 0
 

Ну, это совсем не то, что мы ожидали! Python интерпретирует 1 000 000 как список из трех пунктов для печати. Так что не ставьте запятых в целые числа.

2.2. Переменные

Одной из самых мощных функций языка программирования является возможность управлять переменными . Переменная — это имя, которое ссылается на значение.

Оператор присваивания создает новые переменные и дает им значения:

 >>> message = "Как дела, Док?"
>>> n = 17
>>> пи = 3,14159
 

В этом примере выполняются три назначения. Первый присваивает строку «Что up, Doc?" в новую переменную с именем message. Вторая дает целое число 17 в n, а третий дает число с плавающей запятой 3,14159 в Пи.

Оператор присваивания , =, не следует путать со знаком равенства (хотя он использует тот же символ). Операторы присваивания связывают имя , слева от оператора со значением справа. Вот почему вы получите сообщение об ошибке, если введете:

 >>> 17 = n
 

Обычный способ представить переменные на бумаге — написать имя со стрелкой. указывая на значение переменной. Такая цифра называется состоянием . диаграмма , потому что она показывает, в каком состоянии находится каждая из переменных (подумайте об этом как состояние ума переменной). На этой диаграмме показан результат операторы присваивания:

Оператор печати также работает с переменными.

 >>> распечатать сообщение
Как дела, док?
>>> напечатать п
17
>>> напечатать пи
3.14159
 

В каждом случае результатом является значение переменной. Переменные также имеют виды; опять же, мы можем спросить переводчика, каковы они.

 >>> тип(сообщение)
<тип 'строка'>
>>> тип(н)
<тип 'целое число'>
>>> тип (пи)
<тип 'плавающий'>
 

Тип переменной — это тип значения, на которое она ссылается.

2.3. Имена переменных и ключевые слова

Программисты обычно выбирают для своих переменных осмысленные имена — они документируют, для чего используется переменная.

Имена переменных могут быть произвольно длинными. Они могут содержать как буквы, так и цифры, но они должны начинаться с буквы. Хотя законно использовать заглавные буквы, по соглашению мы этого не делаем. Если вы это сделаете, помните тот случай имеет значение. Брюс и Брюс - разные переменные.

В имени может использоваться символ подчеркивания (_). Он часто используется в названия, состоящие из нескольких слов, например my_name или price_of_tea_in_china.

Если вы дадите переменной недопустимое имя, вы получите синтаксическую ошибку:

 >>> 76trombones = "большой парад"
SyntaxError: неверный синтаксис
>>> больше$ = 1000000
SyntaxError: неверный синтаксис
>>> класс = "Информатика 101"
SyntaxError: неверный синтаксис
 

76trombones незаконен, потому что он не начинается с буквы. больше$ является недопустимым, поскольку содержит недопустимый символ, знак доллара. Но что не так с классом?

Оказывается, этот класс является одним из Python ключевых слов . Ключевые слова определяют правила и структура языка, и их нельзя использовать в качестве имен переменных.

Python имеет тридцать одно ключевое слово:

и как утверждать перерыв класс продолжить
по умолчанию дел Элиф еще кроме исполнитель
наконец для из глобальный если импорт
в это лямбда не или пройти
печать поднять возврат попробуй, а с
выход          

Возможно, вы захотите держать этот список под рукой. Если переводчик жалуется на один ваших имен переменных, и вы не знаете почему, посмотрите, есть ли они в этом списке.

2.5. Вычисление выражений

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

 >>> 1 + 1
2
 

вычисление выражения выдает значение, поэтому выражения может появляться в правой части операторов присваивания. Значение по всем само по себе является простым выражением, как и переменная.

 >>> 17
17
>>> х
2
 

Как ни странно, вычисление выражения — это не совсем то же самое, что печать ценить.

 >>> message = "Как дела, Док?"
>>> сообщение
"Как дела, док?"
>>> распечатать сообщение
Как дела, док?
 

Когда оболочка Python отображает значение выражения, она использует тот же формат, который вы использовали бы для ввода значения. В случае строк это означает, что он включает кавычки. Но оператор печати печатает значение выражение, которое в данном случае является содержимым строки.

В скрипте выражение само по себе является допустимым утверждением, но оно не Делать что-нибудь. Скрипт

 17
3.2
"Привет, мир!"
1 + 1
 

вообще не выводит. Как бы вы изменили сценарий для отображения значения этих четырех выражений?

2.6. Операторы и операнды

Операторы — это специальные символы, которые представляют такие вычисления, как сложение и умножение. Используемые оператором значения называются операндами .

Ниже приведены все допустимые выражения Python, смысл которых более или менее ясно:

 20+32 час-1 час*60+минута минута/60 5**2 (5+9)*(15-7)
 

Символы +, - и /, а также использование скобок для группировки, означают в Python то, что они означают в математике. Звездочка (*) означает знак умножения, а ** — знак возведения в степень.

Когда вместо операнда появляется имя переменной, оно заменяется на его значение до выполнения операции.

Сложение, вычитание, умножение и возведение в степень делают то, что вы ожидать, но вы можете быть удивлены разделением. Следующая операция имеет неожиданный результат:

 >>> минута = 59
>>> минут/60
0
 

Значение минуты равно 59, а 59, деленное на 60, равно 0,98333, а не 0. причина несоответствия в том, что Python выполняет целочисленное деление .

Если оба операнда являются целыми числами, результат также должен быть целым числом, и по соглашению целочисленное деление всегда округляет до вниз , даже в таких случаях где следующее целое число очень близко.

Возможным решением этой проблемы является вычисление процента, а не дробь:

 >>> минут*100/60
98
 

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

2.7. Порядок операций

Если в выражении присутствует более одного оператора, порядок вычисления зависит от правил приоритета . Python следует тому же приоритету правила для своих математических операторов, которые делает математика. Аббревиатура ПЕМДАС это полезный способ запомнить порядок операций:

  1. P арензы имеют наивысший приоритет и могут использоваться для форсирования выражение для оценки в том порядке, в котором вы хотите. Поскольку выражения в скобки оцениваются первыми, 2 * (3-1) равно 4, а (1+1)**(5-2) равно 8. Вы также можете использовать круглые скобки, чтобы упростить чтение выражения, как в (минуты * 100) / 60, хотя это не меняет результат.
  2. E Возведение в степень имеет следующий наивысший приоритет, поэтому 2**1+1 равно 3 и не 4, а 3*1**3 равно 3, а не 27.
  3. M умножение и D ivision имеют одинаковый приоритет, т.е. выше, чем A дополнение и S удаление, которые также имеют то же самое приоритет. Таким образом, 2 * 3-1 дает 5, а не 4, а 2/3-1 равно -1, а не 1. (помните, что при целочисленном делении 2/3=0).
  4. Операторы с одинаковым приоритетом оцениваются слева направо. Итак, в выражение minute*100/60, сначала происходит умножение, что дает 5900/60, что, в свою очередь, дает 98. Если бы операции оценивались из справа налево, результатом было бы 59*1, то есть 59, то есть неправильный.

2.8. Операции со строками

В общем, вы не можете выполнять математические операции со строками, даже если строки выглядят как числа. Следующее является незаконным (при условии, что сообщение имеет строку типа):

 сообщение-1 "Привет"/123 сообщение*"Привет" "15"+2
 

Интересно, что оператор + работает со строками, хотя и не делать именно то, что вы могли бы ожидать. Для строк оператор + представляет конкатенация , что означает объединение двух операндов путем их связывания концы с концами. Например:

 фрукты = "банан"
Baked_good = "ореховый хлеб"
распечатать фрукты + запеченное_хорошее
 

Результатом этой программы является бананово-ореховый хлеб. Пробел перед словом гайка является частью струны и необходима для создания пространства между объединенные строки.

Оператор * также работает со строками; он выполняет повторение. Например, «Веселье»*3 — это «Веселье, веселье». Один из операндов должен быть строкой; в другое должно быть целым числом.

С одной стороны, такая интерпретация + и * имеет смысл по аналогии с сложение и умножение. Так как 4*3 эквивалентно 4+4+4, мы ожидайте, что "Веселье"*3 будет таким же, как "Веселье"+"Веселье"+"Веселье", и это так. На с другой стороны, существует важный способ, которым конкатенация строк и повторение отличается от целочисленного сложения и умножения. Не могли бы вы подумайте о свойстве, что сложение и умножение имеют эту строку конкатенация и повторение не делают?

2.9. Вход

В Python есть две встроенные функции для получения ввода с клавиатуры:

 n = raw_input("Пожалуйста, введите ваше имя: ")
напечатать п
n = input("Введите числовое выражение:")
напечатать п
 

Пример запуска этого скрипта будет выглядеть примерно так:

 $ python tryinput. py
Пожалуйста, введите ваше имя: Артур, король бриттов
Артур, король бриттов
Введите числовое выражение: 7 * 3
21
 

Каждая из этих функций позволяет выдать подсказку функции между скобки.

2.10. Композиция

До сих пор мы рассматривали элементы программы — переменные, выражения, и заявления — по отдельности, не говоря о том, как их сочетать.

Одной из наиболее полезных особенностей языков программирования является их способность возьмите небольшие строительные блоки и составьте из них . Например, мы знаем, как добавляем цифры и умеем печатать; оказывается, мы можем делать и то, и другое одновременно время:

 >>> напечатать 17 + 3
20
 

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

 print "Количество минут с полуночи: ", час*60+минута
 

Вы также можете помещать произвольные выражения в правую часть присваивания выписка:

 процент = (минута * 100) / 60
 

Сейчас эта способность может показаться не впечатляющей, но вы увидите другие примеры, когда композиция позволяет четко и понятно выражать сложные вычисления. кратко.

Предупреждение. Существуют ограничения на использование определенных выражений. Для Например, левая часть оператора присваивания должна быть имя переменной , а не выражение. Итак, незаконно следующее: минута+1 = час.

2.12. Глоссарий

оператор присваивания
= оператор присваивания Python, который не следует путать с математическим оператором сравнения, использующим тот же символ.
оператор присваивания

Оператор, присваивающий значение имени (переменной). Слева от оператор присваивания = является именем. Справа от оператор присваивания — это выражение, которое оценивается Python интерпретатор, а затем присвоено имя. Разница между левая и правая части оператора присваивания часто сбивает с толку новых программистов. В следующем задании:

 н = н + 1
 

n играет совершенно разную роль по обе стороны от =. На справа это значение и составляет часть выражения , которое будет быть оценен интерпретатором Python перед тем, как присвоить его имени слева.

Информация в программе, предназначенная для других программистов (или кого-либо другого). чтение исходного кода) и не влияет на выполнение программа.
состав
Возможность объединять простые выражения и операторы в составные операторы и выражения для представления сложных вычислений кратко.
объединить
Чтобы соединить две строки встык.
тип данных
Набор значений. Тип значения определяет, как его можно использовать в выражения. До сих пор типы, которые вы видели, были целыми числами (тип int), числа с плавающей запятой (тип float) и строки (тип ул).
оценить
Чтобы упростить выражение, выполнив операции, чтобы дают одно значение.
выражение
Комбинация переменных, операторов и значений, представляющая единственное значение результата.
поплавок
Тип данных Python, который хранит числа с плавающей запятой . Числа с плавающей запятой хранятся внутри в двух частях: , базовая и показатель степени . При печати в стандартном формате они выглядят как десятичные числа. Остерегайтесь ошибок округления при использовании чисел с плавающей запятой. и помните, что это только приблизительные значения.
между
Тип данных Python, содержащий положительные и отрицательные целые числа.
целочисленное деление
Операция деления одного целого числа на другое с получением целого числа. Целочисленное деление дает только целое число раз, которое числитель делится на знаменатель и отбрасывает любой остаток.
ключевое слово
Зарезервированное слово, используемое компилятором для разбора программы; ты нельзя использовать ключевые слова вроде if, def и while в качестве переменной имена.
операнд
Одно из значений, с которыми работает оператор.
оператор
Специальный символ, представляющий простое вычисление, такое как сложение, умножение или конкатенация строк.
правила приоритета
Набор правил, регулирующих порядок, в котором выражения, включающие оцениваются несколько операторов и операндов.
диаграмма состояний
Графическое представление набора переменных и значений для которые они ссылаются.
выписка
Инструкция, которую может выполнить интерпретатор Python. Примеры Операторы включают оператор присваивания и оператор печати.
ул
Тип данных Python, содержащий строку символов.
значение
Число или строка (или другие элементы, которые будут названы позже), которые можно хранится в переменной или вычисляется в выражении.
переменная
Имя, ссылающееся на значение.
имя переменной
Имя переменной. Имена переменных в Python состоят из последовательность букв (a..z, A..Z и _) и цифр (0..9), которая начинается с письмом. В передовой практике программирования имена переменных должны быть выбраны так, чтобы они описывали их использование в программе, делая программа самодокументирование .

2.13. Упражнения

  1. Запишите, что происходит, когда вы печатаете оператор присваивания:

     >>> вывести n = 7
     

    Как насчет этого?

     >>> напечатать 7 + 5
     

    Или это?

     >>> print 5. 2, "это", 4 - 2, "это", 5/2.0
     

    Можете ли вы придумать общее правило для того, что может следовать за печатью? заявление? Что возвращает оператор печати?

  2. Возьми предложение: Вся работа и отсутствие развлечений делают Джека скучным мальчиком. Сохраните каждое слово в отдельной переменной, затем распечатайте предложение на одну строку с помощью печати.

  3. Добавьте скобки к выражению 6 * 1 - 2, чтобы изменить его значение от 4 до -6.

  4. Поместите комментарий перед строкой кода, которая ранее работала, и запишите, что происходит, когда вы перезапускаете программу.

  5. Разница между input и raw_input в том, что input оценивает входную строку, а raw_input — нет. Попробуйте следующее в интерпретаторе и запишите, что происходит:

     >>> х = ввод()
    3.14
    >>> тип(х)
     
     >>> х = raw_input()
    3.14
    >>> тип(х)
     
     >>> х = ввод()
    «Рыцари, которые говорят «ни!»
    >>> х
     

    Что произойдет, если вы попробуете пример выше без кавычек?

     >>> х = ввод()
    Рыцари, говорящие «ни!»
    >>> х
     
     >>> х = raw_input()
    «Рыцари, которые говорят «ни!»
    >>> х
     

    Опишите и объясните каждый результат.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *