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