קאָמפּיוטערספּראָגראַממינג

פּיטהאָן פּראָגראַממינג שפּראַך: לופּס

די פּיטהאָן פּראָגראַממינג שפּראַך (ווי "פּיטהאָן" אָדער "פּיטהאָן") עס זענען עטלעכע וועגן צו שלייף עטלעכע קאַמף. די הויפּט מכשירים פֿאַר ימפּלאַמענטיישאַן פון קיין יטעראַטיאָן אין פּיטהאָן - בשעת לופּס און פֿאַר. די בשעת שלייף איז מער וניווערסאַל ווי פֿאַר, אַזוי עס איז סלאָוער. אבער, דאָס טוט נישט מיינען אַז עס איז בעסער! די פֿאַר שלייף איז געניצט מער אָפֿט, ווייַל מיט אים איינגעזען די מערסט שווער טאַסקס פֿאַר די בריאה פון מאַלטי-מדרגה און מנאָגאָוסלאָווניה מגילה.

פּיטהאָן: ציקל מיט פּאָסטקאָנדיטיאָן

סייקאַלז מיט פּאָסטקאָנדיטיאָן - עס לופּס בשעת, וואָס זענען די מערסט וניווערסאַל אָרגאַנאַזיישאַנאַל סטראַקטשערז אין די פּראָגראַממינג סוויווע. די בשעת שלייף אַפּערייץ אויף דעם פּרינציפּ פון "ווי לאַנג ווי". דעם מיטל די ווייַטערדיק: בשעת אַ זיכער צושטאַנד וועט צוריקקומען אַ אמת ווערט, עס וועט אַרבעטן! דעם פּלאַן איז גערופֿן אַ "ציקל" ווייַל די פונקטיאָנאַל פאַרוואַלטונג פון סיקליקאַללי ריפּיטיד, סטאַרטינג מיט די ערשט ווערט. אויס אין די ציקל בשעת פּיטהאָן זיין ימפּלאַמענאַד בייַ די צייַט ווען די ווערט ווערט פאַלש. אין דעם פונט, די יבערזעצער טראַנזמיץ די פּראָגראַם צו די ווייַטערדיק פונקטיאָנאַל-סעמאַנטיק אָפּשניט, דאס הייסט אַ נייַ שורה, וואָס איז ליגן נאָך די בלאָק מיט די פּאָסטקאָנדיטיאָן בשעת.

אין פּראָגראַממינג שפּראַכן, פּיטהאָן סייקאַלז בשעת פּאָסטקאָנדיטיאָן האָבן די ווייַטערדיק סינטאַקס:

1. בשעת (צושטאַנד):

2. אויסדרוק

אויסדרוק קענען זיין אָדער אַ איין דערקלערונג אָדער עטלעכע. די צושטאַנד איז שטענדיק אַ אמת באַטייַט פון קיין ניט-נול. דעם פּלאַן אַרבעט ווי לאַנג ווי די ספּעסיפיעד צושטאַנד איז אמת.

ניצן ציקל בשעת אין דער "פּיטהאָן" פֿאַר בייַשפּיל

ראַססמאָטירים בשעת שלייף. פּיטהאָן איז גאַנץ טשיקאַווע סטראַקטשערז זייַן יטעראַטיאָנס:

אַ = 0
בשעת אַ <7:
דרוקן ( "א")
אַ = אַ 1

מיר האָבן דערקלערט די בייַטעוודיק "אַ" און געבעטן איר צו נול. דעמאָלט שטעלן די באדינגונגען "בשעת אַ <7", אַז איז, בשעת די בייַטעוודיק "אַ" איז ווייניקער ווי די נומער "7", דעמאָלט אונדזער שלייף וועט זיין עקסאַקיוטאַד ווי לאַנג ווי עס איז פאַלש.

א פאַלש (אַז איז, וועט אַרויסגאַנג פון די ציקל) עס וועט זיין ווען די בייַטעוודיק וועט זיין גרעסער ווי די נומער "7". פֿאַר דעם צו פּאַסירן, עס איז יעדער צייַט ינקרעמענטעד דורך 1, אַז מיר אָנווייַזן אין דער "אַ = אַ 1".

אויב איר לויפן דעם קאַנסטראַקשאַן, די בריוו "א" וועט זיין געוויזן 7 מאל אין אַ קאָלאָנע!

א
א
א
א
א
א
א

אָנ אַ סאָף שלייף בשעת אין פּיטהאָן

ווי צו מאַכן אַן אָנ אַ סאָף שלייף אין פּיטהאָן בשעת? טרעפן נישט שווער, ווייַל די ציקל ראַנז ביז ביז עס נעמט אַ פאַלש ווערט, און אויב דעם ווערט איז נאָר נישט דאָרט? די ענטפער צו די קשיא איז מיסטאָמע שוין אַזוי אַלץ איז קלאָר. אין עטלעכע קאַסעס, אַ Infinite שלייף איז דארף צו סאָלווע אַ פּראָבלעם? דעם בייַשפּיל וועט דינען ווי אַ מעקייַעם פון אַזאַ אַ פּראָגראַם, ווי אַ "זייגער." דאָ, פון קורס, איר דאַרפֿן צו נוצן אַ Infinite שלייף, וואָס וועט זיין פּערמאַנאַנטלי ופּדאַטעד און ווייַזן די צייַט.

Infinite שלייף איז אָפֿט אַ גרייַז אָנהייבער פּראָוגראַמערז וואס פאַרגעסן צו לייגן אַ טוישן ציקל באדינגונגען.

זאל ס נעמען אַ קוק אין די ווייַטערדיק שטיק פון פּיטהאָן קאָד. די סייקאַלז אין דעם פאַל יטעראַטעד ינדעפיניטעלי (נאָך דעם "#" כאַראַקטער איז אַ באַמערקונג):

נומער = 1 # דערקלערן אַ בייַטעוודיק נומער און באַשטימען עס אַ ווערט פון 1

בשעת נומער <10: # מאַכן די פּאָסטקאָנדיטיאָן, וואָס נומער ווייניקער ווי 10

דרוק 'העלא' # צושטאַנד (דרוקן «העלא» אָנזאָג)

אַזאַ אַ פּראָגראַם זאָל נישט קאַמיש צו צונויפנעמען, ווייַל עס וועט לויפן ינדעפיניטעלי. מיר געבעטן אַזאַ טנאָים אַז וועט קיינמאָל זיין פאַלש וואַלועס צושטאַנד «נומער <10" אין דעם פאַל און שטענדיק אמת, אַזוי די יטעראַטיאָן וועט זיין קעסיידער ברענגען ען-טה נומער פון "העלא" אַרטיקלען. אין סדר צו האַלטן דעם פּראָצעס פון קאַמפּיילינג די אייביק, איר וועט דאַרפֿן צו דריקן די שליסל קאָמבינאַציע קטרל + C אין די שאָל.

פּיטהאָן: סינטאַקס. בשעת, און פֿאַר לופּס

ווי דערמאנט אויבן, אין דער שפּראַך פון די "פּיטהאָן" פּראָגראַממינג, עס זענען עטלעכע וועגן צו אָרגאַניזירן אַ איבערחזרן גרופּע אויסדרוקן. עס קומט צו דער ראַטעווען שלייף פֿאַר, וואָס איז אַ ביסל אַנדערש פֿון זייַן אַנטקעגענער בשעת, ווייַל זייַן פּלאַן איז אַ ביסל מער קאָמפּליצירט ווי נאָר פּאָסטקאָנדיטיאָן. לאָזן ס ניט רעדן וועגן די יונאַווערסאַלאַטי פון די ציקל, ווייַל עס נאָר טוט ניט, אָבער, זיין אנגעוויזן אַז די פֿאַר שלייף איז פיל Faster ווי אַ בשעת. א פאַרשיידנקייַט פון וועגן צו סאָלווע די פּלאַן און אויפֿפֿירונג פון דעם קליין אָוטפּערפאָרם ציקל מיט פּאָסטקאָנדיטיאָן, אַזוי עס איז פיל מער מסתּמא צו נוצן צו דורכפירן פילע נישטיק טאַסקס.

וואָס זענען די טשאַלאַנדזשיז facing די ציקל פֿאַר? בלי, די זעלבע ווי אַז פון די בשעת - יטעראַטע קיין פּראַסעסאַז. דער פּראָגראַם הערות געמאכט אויף די "פּיטהאָן", איז וויידלי געניצט שלייף פֿאַר, וואָס איז טויגעוודיק פון ימפּלאַמענטינג טראַווערסאַל פּרידיטערמינד פּלוראַליטעט פון עלעמענטן און צו דורכפירן אין זייַן פאַרשידן גוף יטעראַטינג איבער זיי. פֿעיִקייטן פון דעם פּלאַן קענען ווערן געניצט אין פּראַסעסינג שורות אָדער רשימות נאָר ווי קיין אנדערע כייפעץ יטעראַטעד.

לעמאָשל פון נוצן פֿאַר די ציקל אין פּיטהאָן

זאל ס זאָגן מיר האָבן עטלעכע רשימה פון נומערן, און מיר דאַרפֿן יעדער עלעמענט (ד"ה. י נומער) געשטארקט דורך דרייַ וניץ. צו ינסטרומענט אַזאַ אַ אַרבעט מיר קענען דורך די שלייף, פֿאַר שלייף מעטהאָדס.

זאל ס קוק אין אַ שנעל לעמאָשל, ווו מיר וועלן דורכפירן די צונעמען קאַמף פֿאַר דעם (נאָך דעם "#" כאַראַקטער איז אַ באַמערקונג):

ספּיסאָק_טשיסעל = [5, 15, 25, 35, 45, 55, 65, 75, 85, 95] # דערקלערט מענגע מיט 10 Figures

ציילן = 0 # Created טאָמבאַנק מיט נול

פֿאַר יסודות אין ספּיסאָק_טשיסעל: # יטעראַטע איבער די מענגע און שרייַבן עס אין די יסודות

ספּיסאָק_טשיסעל [ציילן] = יסודות, + # 3 נומער ינקריסינג מענגע פון דרייַ

ציילן = ציילן, + 1 # גיין צו די ווייַטער נומער אויף די אינדעקס

דער רעזולטאַט פון די אויבן קאַנסטראַקשאַן וועט זיין:

ספּיסאָק_טשיסעל = [8, 18, 28, 38, 48, 58, 68, 78, 88, 98]

אין אונדזער בייַשפּיל, עס איז אַ בייַטעוודיק ציילן, וואָס מיר דאַרפֿן אין סדר צו פייַערן די טשאַנגינג וואַלועס אין די מענגע «ספּיסאָק_טשיסעל». די בייַטעוודיק ציילן איז רעקאָרדעד אַן אינדעקס ווערט פון יעדער עלעמענט אין דער מענגע (יעדער נומער אין דער רשימה). בייַטעוודיק «יסודות» קאַנעקץ די ריזאַלטינג ווערט אין דער רשימה. אין די פֿאַר שלייף, מיר זען ווי צו ינסטרומענט די פּראַסעסינג פון יעדער כייפעץ אין די נומעריקאַל רשימה. ין די שלייף, יעדער נומעריק כייפעץ מיט אינדעקס «ציילן» צוגעגעבן די סומע פון די קראַנט יטעראַטעד עלעמענט און דרייַ. דעמאָלט אונדזער אינדעקס «ציילן» געשטארקט דורך איינער, און די לויפן פון ימפּלאַמענטיישאַן פון די פּראָגראַם קערט צו די אָנהייב פון קאַנסטראַקשאַן אַדס פֿאַר. אזוי, דער שלייף וועט לויפן ביז ביז עס האט פּראַסעסט יעדער עלעמענט אין דער מענגע, געגעבן דורך די צושטאַנד. אויב קיין עלעמענט איז פעלנדיק, אָבער איז באַשטימט דורך די צושטאַנד, די ציקל איז גאַנץ. מיר ציען ופמערקזאַמקייַט צו איינער מער זאַך: אויב איר טאָן ניט שרייַבן אַ שורה פון «ציילן = ציילן, + 1", טראָץ דעם פאַקט אַז אַ מענגע פון אַבדזשעקס פּראַסעסט הצלחה, דער רעזולטאַט וועט שטענדיק זיין מוסיף צו די ערשטער נומעריקאַל כייפעץ אינדעקס נול c.

איצט מיר קענען טראַכטן וועגן בשעת שלייף אָפּעראַציע פּרינציפּן און ידענטיפיצירן די חילוק (צוריקרופן אַז אין פּיטהאָן אויס פון די ציקל מיט פּאָסטקאָנדיטיאָן איז געטראגן אויס אויף דער באזע פון לאַדזשיקאַל קרייטיריאַ - אמת (די ציקל האלט) אָדער פאַלש (די ציקל סטאַפּס)).

ווי צו מייַכל אַ שטריקל אין פּיטהאָן ניצן די פּלאַן פֿאַר?

אין יעדער פּראָגראַממינג שפּראַך עס זענען סייקאַלז, און זיי אַרבעטן, יוזשאַוואַלי אויף דער זעלביקער פּרינציפּ, די חילוק קענטיק בלויז אין די סינטאַקס. אָבער, די פֿאַר שלייף אין די שפּראַך "פּיטהאָן" איז ניט אַ פּראָסט און נישטיק, ווייַל דער פּרינציפּ פון זייַן אָפּעראַציע איז ניט באגרענעצט צו די טאָמבאַנק. דעם פּלאַן ענומעראַטעס יעדער נומער סעפּעראַטלי. אַלע דעם קענען זיין לייכט דערקלערט דורך די משל פון ארבעטן מיט סטרינגס, אָבער ערשטער לאָזן ס האַנדלען מיט די זאַץ פון די ציקל פֿאַר:

פֿאַר בייַטעוודיק

עס איז סטאָרד אין אַ בייַטעוודיק ציקל אָפּעראַציע רעזולטאַט

אין פּערעמעננייַאַ_2

שליסל וואָרט «אין» - עס איז אַ פּרירעקוואַזאַט ווען ארבעטן מיט «פֿאַר» ציקל. פֿון פּערעמעננוי_2 מיר ציען די ווערט אַז וועט זיין יטעראַטעד. פֿאַר קלעריטי, און קלעריטי, לאָזן ס קוק אין אַ קליין בייַשפּיל פון ווי צו אַרבעטן און צו סאָרט סטרינגס אין פּיטהאָן:

טשאַר = 'פּראָגראַממינג' # דערקלערן אַ בייַטעוודיק און באַשטימען אַ שטריקל ווערט

פֿאַר סלאָוואָ אין טשאַר: # שאַפֿן אַ בייַטעוודיק סלאָוואָ, וואָס וועט פאָרזעצן באַסטינג קאָודז פון בייַטעוודיק טשאַר

דרוקן (סלאָוואָ, סוף = '^') # אָוטפּוט די סלאָוואָ און נאָך יעדער בריוו, אַרייַנלייגן אַ סימבאָל - אַ פויגל.

דער רעזולטאַט פון די שריפט:

פּ ^ ז '^ די ^ ר ^ ר ^ אַ ^ מ ^ מ ^ ^ און פּ ^ אָ ^ אַ ^ אַ ^ ן ^ און ^ און

פאָרזעצן דערקלערונג

אָפּעראַטאָר פאָרזעצן ימפּלאַמענטינג די יבערגאַנג צו די ימפּלאַמענטיישאַן פון די ווייַטער ציקל, געגעבן דורך די צושטאַנד, ראַגאַרדלאַס פון די וואָג פון די שלייף. ניצן די פאָרזעצן דערקלערונג קענען זיין אין צוויי סייקאַלז - פֿאַר און בשעת.

באַטראַכטן דעם בייַשפּיל:

פֿאַר ציילן אין 'איבערחזרן יעדער בריוו, אַחוץ פֿאַר'

אויב ציילן == 'אָ':

פאָרזעצן

דרוקן (ציילן * 2, סוף = '')

דער רעזולטאַט וועט זיין די ווייַטערדיק:

פּפּווווטטרריימם קקאַאַזשזשדדוויויו בבווקקוווווו ,, קקררממעע

ווען די האַנדלער געפֿונען אַ בריוו "אָ" אין די שטריקל 'איבערחזרן יעדער בריוו, אַחוץ פֿאַר' די דורכפירונג פון דער פּראָגראַם איז געווען מיד פאָרוואַרדעד צו די שורה נאָך די וואָרט '' פאָרזעצן '', ווו די צושטאַנד איז געווען באַשטימט צו דופּליקאַט יעדער בריוו.

ברעכן דערקלערונג

קייוואָרד «ברעכן» ינסערטאַד אין דער אָרט ווו די ציקל איז צו זיין ינטעראַפּטיד אָן ווארטן פֿאַר זייַן קאַמפּלישאַן, וואָס איז געגעבן דורך די צושטאַנד. דעם פּלאַן איז אָפֿט געניצט ווען שרייבן מגילה מיט אַ פּלאַץ פון לאָגיק און באדינגונגען.

באַטראַכטן אַ קליין בייַשפּיל פון די אַרבעט ברעכן דערקלערונג:

פֿאַר ציילן אין 'איבערחזרן יעדער בריוו, אַחוץ פֿאַר'

אויב ציילן == 'אָ':

ברעכן

דרוקן (ציילן * 2, סוף = '')

דער רעזולטאַט וועט זיין די ווייַטערדיק:

נן

ווען די האַנדלער געפֿונען אַ בריוו "אָ" אין די שטריקל 'איבערחזרן יעדער בריוו חוץ פֿאַר' די דורכפירונג פון דער פּראָגראַם איז געווען מיד כאָלטיד, טראָץ דעם פאַקט אַז די ווייַטער שורה כּולל עטלעכע פון די באדינגונגען פֿאַר די ציקל.

די מאַגיש וואָרט אַנדערש

אין אַ סעריע פון קיין מין קענען צולייגן די אָפּעראַטאָר אַנדערש. וואָס איז עס פֿאַר? ער האט אויך טשעקס וואָס האט שוין באגאנגען אויס פון די שלייף מיטל אַ ברעכן אָדער די געוויינטלעך וועג. בלאָק מיט פּרידיטערמינד כּללים אין ימפּלאַמענטיישאַן אַנדערש נעמען נאָר ווען די צושטאַנד אַז דער רעזולטאַט פון די ציקל איז געווען געטראגן אויס אָן די נוצן פון ברעכן ביניען.

באַטראַכטן אַ קליין משל:

פֿאַר ציילן אין 'העלא וועלט':

אויב ציילן == 'איך':

ברעכן

אַנדערש:

דרוקן ( 'אייער זאַץ האט קיין בריוו' איך '')

דער רעזולטאַט פון די שריפט:

דיין זאַץ איז ניט דער בריוו "איך"

עקסאַמפּלעס פון סייקאַלז אין די פאַרקערט סדר פון די פּיטהאָן פּראָגראַממינג שפּראַך

ווי ימפּלאַמענטאַד אין פּיטהאָן פאַרקערט ציקל? זאל ס ימאַדזשאַן אַז שרייבן אַ פּראָגראַם וואָס דאַרף צו דערקענען די כאַראַקטער שורה און דרוקן עס אין פאַרקערט סדר. ווי צו ינסטרומענט דעם?

באַטראַכטן די משל ונטער:

סלאָוואָ = 'פּראָגראַממינג'

נעוו_סלאָוואָ = []

פֿאַר ציילן אין קייט (Len (s), 0, -1):

נעוו_סלאָוואָ.אַפּפּענד (s [איך-1])

נעוו_סלאָוולאָ

[ 'פּ', 'ז' ',' אָ ',' ג ',' ז '', 'אַ', 'עם', 'עם', 'און', 'ז' ',' אָ ',' אַ ',' אַ ',' s '', 'און', 'E']

דרוקן (נעוו_סלאָוואָ)

[ 'פּ', 'ז' ',' אָ ',' ג ',' ז '', 'אַ', 'עם', 'עם', 'און', 'ז' ',' אָ ',' אַ ',' אַ ',' s '', 'און', 'E']

דרוקן ( ''. באַהעפטן (נעוו_סלאָוואָ))

דער רעזולטאַט פון די שריפט:

עינאַוואָריממאַרגאָרפּ

נעסטעד לופּס

אין פּיטהאָן, עס זענען אויך סייקאַלז פון פּראָגראַממינג און ינוועסטמאַנץ, וואָס איז געשטעלט אין דעם גוף פון דעם אנדערן. אין יעדער ציקל קענען זיין אַ נעסטעד שלייף, און אַזוי עס איז מעגלעך צו בויען אַ לייטער צו ומענדיקייַט. אין דער ערשטער יטעראַטיאָן פון די ויסווייניקסט שלייף איז ציען מיט אַ רוף צו די ינער שלייף, וואָס איז עקסאַקיוטאַד איידער די קאַמפּלישאַן פון זייַן אייגן, דעמאָלט קאָנטראָלירן אַלע רידערעקטיד אין די גוף פון די ויסווייניקסט שלייף. יעדער שפּראַך האט זייַן אייגן טשאַראַקטעריסטיקס פון נעסטעד לופּס, לאָזן 'ס קוק אין ווי זיי אַרבעטן אין די "פּיטהאָן" פּראָגראַממינג שפּראַך.

אויב איר זענען ניצן נעסטעד לופּס, פּיטהאָן Offers די ווייַטערדיק סינטאַקס:

פֿאַר בייַטעוודיק אין סיקוואַנס פון וועריאַבאַלז:

פֿאַר בייַטעוודיק אין סיקוואַנס פון וועריאַבאַלז

קאַמף (s)

קאַמף (s)

די ספּעציעל פֿעיִקייטן פון נעסטעד לופּס איז די פאַקט אַז אין די ציקל פון קיין טיפּ קענען ווערן געניצט ווי קיין טיפּ פון ציקל! דעם מיטל אַז אין אַ ציקל בשעת (אָדער פֿאַר) קענען זיין עמבעדיד פֿאַר אַ ציקל אָדער ווידער בשעת און וויצע ווערסאַ.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 yi.delachieve.com. Theme powered by WordPress.