1. 程式人生 > >Python:for迴圈之應用-Routine4

Python:for迴圈之應用-Routine4

For迴圈的結構:首先是一個for,然後是一個可以用於存放各個元素的變數,經常用i,j,k表示計數器變數,接下來是in,然後是要遍歷的序列,然後是一個冒號,最後是另起一行加Tab製表符的迴圈體。for迴圈會按順序為序列中的每個元素執行一次迴圈體,當到達序列的末尾時,迴圈就結束了。用於存放元素的計數器變數如果在迴圈之前還不存在的話,也是會被直接建立的,並且計數器變數在迴圈體中也不一定會被使用到。舉例子如下:

for i in "python":
    print(i)

會發現它把各個字元都列印在不同的行,我想把它們列印在一行,怎麼辦呢?

for letter in "Trouble"
: print(letter,end = " ")

此時,它們就會老老實實地待在一起了,要是嫌捱得不夠近,可以把end後面雙引號裡面的空格刪除,它們就會變成”trouble”了。end=” “的意思是自己指定結束形式,也就是列印完計算機不要以回車結束,而是以空格結束。
接下來給出一個for迴圈和range()函式結合的一個小程式:

print("I'll show you 20 numbers between 1 and 20:\n")
for i in range(1,21):
           print(i,end = " ")
print("\n\nIn range 20,show the numbers every 2 numbers:\n"
) for i in range(1,21,2): print(i,end = " ") print("\n\nCounting the numbers between 1 and 10 backwards:\n") for i in range(10,0,-1): print(i,end = " ")

上面程式裡面的迴圈序列是由range()函式給出的,該函式只在有需要的時候才會返回序列中的下一個值,如果給range()函式提供一個正整數,那就可以返回從零開始到給定數值(不包括它)的整數序列,如果給函式三個值,那麼這三個值會分別作為起始點,結束點和計數單位,起始點是始終都會得到的值,而結束點卻不包括在內。

Python提供了許多實用的函式和運算子,來操作包括字串在內的各種序列。這些運算子和函式可以告訴你一些有關序列的簡單而重要的資訊,比如長度和是否含有特定元素。比如:

information = input("\nEnter a word that you want to know something about:\n")
length = len(information)
print("\nThe length of your information is :",length)
print("\nThe most beautiful letter I think in the English language 's'",end=" ")
if "s" in information:
           print("is in your information")
else:
           print("is not in your information.")

input("\nEnter the enter key to exit!")

其中用到了len()函式,它會對傳給它的序列,返回該序列長度的響應。序列的長度包括它包含元素的數量,包括空格,感嘆號之類的元素。
還用到了in運算子,在判斷某個元素是否包含在某個序列時,可以用in。

下面貼出過去別人經常玩的一個Word Jumble遊戲

新的個性化遊戲規則我限定如下:遊戲開始時,遊戲者有權決定要不要進入遊戲。遊戲者需要從計算機給出的打亂的字母中猜中原來的單詞是什麼,遊戲者只有5次機會猜中它,否則遊戲會重新給出一個新的打亂字母順序的單詞去猜,當然此時遊戲者可以選擇退出遊戲。

#Word Jumble
print("I am so happy that you can play this Word Jumble game with me!")
print("I'll give you a word that is scrambled.Your task is to unscramble it!")
print("And show me the right answer.")
yourwill = input("Do you accept this challenge?Yes or No:")
import random
WORDLIB = ('technique','architecture','heritage','gorgeous','fabulous','tremendous','application','heterostructure','electroluminescence','phosphorene','intriguing')

if yourwill.lower() == 'yes':

           input("Press the enter key to start!")
           while yourwill.lower() == 'yes':
                      counts = 1
                      word = random.choice(WORDLIB)
                      answer = word
                      newword = ''
                      while word:
                                 position = random.randint(0,len(word) - 1)
                                 if word:
                                            newword += word[position]
                                            print(word[position],end = " ")
                                            word = word[:position] + word[(position+1):]                      
                      yourguess = input("\nPlease enter your answer:")
                      while yourguess != answer and ((counts % 5) != 0):
                                 print("\nWrong!Guess it again!")
                                 yourguess = input("\nPlease change your answer:")
                                 counts += 1
                      if yourguess == answer:
                                 print("\nCongratulation!You made it.The answer is",answer)
                      else:
                                 print("\nI'm sorry.The answer is",answer)
                      yourwill = input("\nWant to challenge it again?Yes or No:")
           print("\nLooking forward to your next visiting!")
else:
           print("\nLooking forward to your next visiting!")
input("\n Enter the enter key to withdraw!")

編寫這個遊戲之前,我們要理解字串及元組的不變性,能通過“+”運算子建立新的字串及用“”+“”運算子連線其他元組成新的元組,理解切片的概念,會建立元組並會對其切片和索引。
注意:Python中常量一般全大寫,但這只是約定俗成的東西,Python並不會阻止你用非大寫的名字做常量,只是靠自覺。

其實可以將上面while迴圈改成for迴圈。你可以嘗試一下。核心如下:

import random
WORDLIB = ("mood","happy","young")
answer = random.choice(WORDLIB)
newword = answer
word = ''
for i in range(len(answer)):
           position = random.randint(0,len(newword)-1)
           word += newword[position]
           newword = newword[0:position]+newword[(position+1):]
print(answer,'is scrambled to',word) 

Word Jumble升級版:加入了計分和提示。限制5次機會去贏得遊戲,並在遊戲者遇到困難時詢問要不要給提示。

#Word Jumble升級版
print("I am so happy that you can play this Word Jumble game with me!")
print("I'll give you a word that is scrambled.Your task is to unscramble it!")
print("And show me the right answer.")
yourwill = input("Do you accept this challenge?Yes or No:")
import random
WORDLIB = ('technique','architecture','heritage','gorgeous','fabulous','tremendous','application','heterostructure','electroluminescence','phosphorene','intriguing')

if yourwill.lower() == 'yes':

           input("Press the enter key to start!")
           while yourwill.lower() == 'yes':
                      hinttimes = 1
                      counts = 1
                      word = random.choice(WORDLIB)
                      answer = word
                      newword = ''
                      while word:
                                 position = random.randint(0,len(word) - 1)
                                 if word:
                                            newword += word[position]
                                            print(word[position],end = " ")
                                            word = word[:position] + word[(position+1):]                      
                      yourguess = input("\nPlease enter your answer:")
                      while yourguess != answer and ((counts % 5) != 0):
                                 print("\nWrong!Guess it again!")
                                 if counts > 3 and hinttimes == 1:
                                            hint = input("Want a hint?Yes or No:")
                                            if hint.lower() == 'yes':
                                                       print("\nThe first letter is",answer[0])
                                                       yourguess = input("\nPlease give your new answer:")
                                                       counts += 1
                                                       hinttimes = 0
                                            else:
                                                       yourguess = input("\nPlease give your new answer:")
                                                       counts += 1
                                 else:
                                            yourguess = input("\nPlease go on to guess the answer:")
                                            counts += 1
                      if yourguess == answer:
                                 if hinttimes == 0:
                                            print("\nCongratulation!You made it.The answer is",answer,".Finally the score you have got is",(6-counts)*20-10,"points!")
                                 else:
                                            print("\nCongratulation!You made it.The answer is",answer,".Finally the score you have got is",(6-counts)*20,"points!")           
                      else:
                                 print("\nI'm sorry.The answer is",answer,".Finally the score you have got is 0 point!")
                      yourwill = input("\nWant to challenge it again?Yes or No:")
           print("\nLooking forward to your next visiting!")
else:
           print("\nLooking forward to your next visiting!")
input("\n Enter the enter key to withdraw!")

小程式:獲取使用者輸入的一條資訊,將其倒序輸出

info = input("Enter a information that I will inverse it to you:")
inverse = ''
for i in range(len(info)-1,-1,-1):
           inverse += info[i]
print(inverse)

計算機與使用者之間的小猜字遊戲:

import random
LIB = ("kid","wild","elegant")
word = random.choice(LIB)
print("I have randomly chose a word,can you guess it?The lenght of the word is",len(word))
print("\nYou only have 5 chances to ask me if there is some letter in it. ")
print("\nAnd I only can just say yes or no.")
chance = 1
while chance <= 5:
           letter = input("\nTell me the letter you want to ask:")
           if letter in word:
                      print("\nYes")
                      chance += 1
           else:
                      print("\nNo")
                      chance += 1
answer = input("\nNow tell me the word you guess:")
if answer.lower() == word:
           print("\nYou are right!The word is",word,"!")
else:
           print("\nSorry!The word is",word,"!")

加一個小題:輸出1到5000的所有的5和7的公因數,要求每20個列印成一行。

j = 0
for i in range(1,5000):
           if i % 5 == 0 and i % 7 == 0:
                      print(i,end = ' ')
                      j += 1
           if j != 0 and j % 20 == 0:
                      print("\n")
                      j = 0

相關推薦

Python:for迴圈應用-Routine4

For迴圈的結構:首先是一個for,然後是一個可以用於存放各個元素的變數,經常用i,j,k表示計數器變數,接下來是in,然後是要遍歷的序列,然後是一個冒號,最後是另起一行加Tab製表符的迴圈體。for迴圈會按順序為序列中的每個元素執行一次迴圈體,當到達序列的末尾

Python for迴圈查詢下一個記錄

      我們在使用for迴圈的時候,由於python語言的高效性,致使我們漸漸忽略了一個很重要的角色,index。       怎樣查詢當前記錄的下一條記錄呢? li1 = [3, 4, 5

python中的for迴圈應用

1:求一加到一百的和 >>> s=0 >>> for k in range(101):  s=s+k   >>> print(s) 5050 >>> 2:給陣列中的每一個數加1 >>

JS中for迴圈斐波拉切數列-兔子問題

兔子問題: 有個人想知道,一年之內一對兔子能繁殖多少對?於是就築了一道圍牆把一對兔子關在裡面。已知一對兔子每個月可以生一對小兔子,而一對兔子從出生後第3個月起每月生一對小兔子。假如一年內沒有發生死亡現象,那麼,一對兔子一年內(12個月)能繁殖成多少對?(兔子的規律為數列,1,1,2,3,5,8,

python- for迴圈

完整的for迴圈語法: 當集合中的元素從頭到尾遍歷了一邊之後,else的程式碼就會執行; 當for迴圈中有break導致跳出迴圈的時候,else的程式碼就無法執行。 實際應用場景: 在迭代遍歷巢狀的資料型別時,例如一個列表嵌套了多個字典,判斷某一個字典中是否存在指定的值。

python-for迴圈語句、range()函式

1.for迴圈 2.range 1.for迴圈 for 迴圈的語法: for 變數 in range(10): #迴圈0-9次 迴圈需要執行的程式碼 else: 迴圈結束時需要執行的程式碼 2.range()函式: range(stop): 0~stop-1 r

003-小白學python-for迴圈/字串/列表

目錄 for迴圈/字串/列表 1for定義 意義 for與break for-else懸掛 break 字串 建立字串,空格也算是一個字元 下標訪問字串字元 切片, 字串操作 查詢

Python-for迴圈迭代讀取多個引數,傳送POST請求

本來想用java來寫批量新增裝置到IOT平臺的,但是,想嘗試用Python指令碼寫一下,就請教一下朋友,使用for k,v in 來讀取多個引數,實現用POST請求 批量新增的功能 #!/usr/

python for 迴圈

for的基本操作 for是用來迴圈的,是從某個物件那裡依次將元素讀取出來。 >>> name_str = "hiekay" >>> for i in name_str: #可以對str使用for迴圈 ... print i, ...

深入瞭解JavaScript 中的For迴圈詳解

轉載地址:https://segmentfault.com/a/1190000017569850 尊重原創 正文: ​ 在程式碼示例中我會用到es6中的語言,如果你還不是很瞭解,你可以看看阮老師的es6.(= =我也是一點一點跟著看的。) 1.map ​ 先說一下最常用的map.利用ma

Python while迴圈問答題

#該題目是我在課程的基礎上改了邏輯;現在的邏輯是:如果該使用者回答不出第1題就會一直卡在第1題,2、3同理,直至答對最後一題,通關; #原題的邏輯是:第一位使用者只要答錯題即出局,由第2個人來回答 #很簡單的題目,下次爭取用更簡單的思路來寫 while True: q = input('第一

python for迴圈語句怎麼寫

想必大家都知道吧,可以python迴圈語句有多種,比如for迴圈、while迴圈、if、else等等,今天小編就給大家講講for迴圈語句。for迴圈語句是python中的一個迴圈控制語句,任何有序的序列物件內的元素都可以遍歷,比如字串、列表、元組等可迭代對像。之前講過的if

Linux for迴圈不帶列表for迴圈

for迴圈是Linux shell 中最常用的結構。for 迴圈有三種結構:一種結構是列表for迴圈;第二種結構是不帶列表for迴圈;第三種結構是類C風格的for迴圈。上篇博文講解了列表for迴圈,本篇博文重點看不帶列表for迴圈。不帶列表for迴圈執行時,由使用者指定

各種數字形狀列印(巢狀for迴圈應用

1、12345       12345       12345       12345  <span style="font-size:14px;">public class Demo0

Python for迴圈生成列表

一般Python for語句前不加語句,但我在機器學習實戰中看到了這兩條語句: featList = [example[i] for example in dataSet] classLis

Windows bat指令碼for迴圈

正如色彩繽紛的七彩光芒是由紅綠藍三原色構成的一樣,最複雜的for語句,也有其基本形態,它的模樣是這樣的: 在cmd視窗中:for %I in (command1) do command2 在批處理檔案中:for %%I in (command1

Python for迴圈詳解

觸發 else正常結束的迴圈list = [1,2,3,4,5] for x in list: print(x) else: print("else")使用 continue 關鍵字list = [1,2,3,4,5] for x in list: continue print

Linux for迴圈列表for迴圈

for迴圈是Linux shell 中最常用的結構。for 迴圈有三種結構:一種結構是列表for迴圈;第二種結構是不帶列表for迴圈;第三種結構是類C風格的for迴圈。 本篇博文重點看列表for迴圈,列表for迴圈大的格式固定,在列表構成上分多種情景,如數字列表、字串列表、

Python for迴圈 基礎知識篇(重要)

今天又被自己shock到了,原來以為對range的理解蠻熟悉了......今天小測試一做又不行了,來看題目 codecademy上面要求列印一個以“O”為元素的5×5矩陣,第一要求是先列印5遍“O”,並聲稱5列 正確程式碼如下 board = [] for x in ra

python三大器while,if,for迴圈

一、for迴圈(遍歷迴圈)   在Python你可能要經常遍歷列表的所有元素,對每個元素執行相同的操作;對於包含數字的列表,可能要對每個元素進行相同的計算;在網站中,可能需要顯示文章中的每個標題等等.某一個可迭代的資料型別的所有元素進行某些相同的操作時,我們可以使用for迴圈 1.關鍵字:  f