2018-11-22學習筆記

循環是一個結構,致使程序要重複必定的次數。python

條件循環也是如此,當條件變爲假,循環結束。git

1. 流程控制-for序列

在序列裏,使用for循環遍歷。express

語法:vim

for iterating_var in sequence:dom

statement(s)函數

字符串變量:測試

i, 抑制換行符在一行顯示。spa

列表:對象

range()函數:索引

range()返回時一個列表;

range能夠快速的生成一個序列

range(I, j, [,步進值])

若是所建立對象爲整數,能夠用range

i爲初始值,不選默認爲0;j爲終止值,但不包括在範圍內;步進值默認爲1;

示例:算1+2 +3...+100 的大小

vim 3.py

#! /usr/bin/python

sum = 0

for i in range(1,101):

sum = sum + i

print sum

xrange函數:

xrange()函數用法與range徹底相同,所不一樣的是生成的不是數值列表,而是一個生成器。

xrange()生成的對象只有在遍歷的時候才輸出列表元素,比較節約內存資源。

2. 流程控制-for字典

迭代遍歷

遍歷序列:將序列中各個元素取出來。

- 直接從序列取值

- 經過索引取值

注:「迭代」,指重複執行一個命令。

示例:寫一個乘法表

vim 5.py

#! /usr/bin/python

for i in range(1,10):

for j in range(1,i+1):

print "%s*%s=%s" % (j,i,j*i),

print

標註:

第一行表示乘法表的行數;

第二行內層循環,控制列數的,j的取值是1到i+1

第三行表示外層循環一次i的值乘以j的值,不換行;

第四行表示內層循環結束後打印換行符;

3.循環推出

for

else

for循環正常結束後,纔會執行else語句。

 

1. 正常循環結束測試else

vim 6.py

#! /usr/bin/python

for i in xrange(1,10):

print i

else:

print 'main end'

 

2. 導入time模塊

#! /usr/bin/python

import time

for i in xrange(1,10):

print i

time.sleep(1)

else:

print 'main end'

一秒中循環打印一次

按ctrl + c退出循環後else後不執行;

 

3. break退出循環

#! /usr/bin/python

for i in xrange(1,10):

print i

if i == 5:

break

else:

print 'main end'

break退出循環else也不執行;

 

4. continue繼續循環,知足條件的不執行continue後面的操做。

#! /usr/bin/python

for i in xrange(1,10):

if i == 3:

continue

if i == 5:

break

print i

else:

print 'main end'

 

5. 導入sys模塊sys.exit()退出整個腳本

import 導入模塊

pass 佔位不執行操做

sys.exit() 退出,後面的print ‘hello’ 都不執行

#! /usr/bin/python

import sys

for i in xrange(1,10):

if i == 3:

continue

elif i == 5:

continue

elif i == 7:

pass

elif i == 8:

sys.exit()

print i

else:

print 'main end'

print 'hello'

練習:

  • 系統生成一個20之內的隨機整數,
  • 玩家有6此機會進行猜猜看,每次猜想都有反饋(猜大了,猜小了,猜對了-結束)
  • 6次中,猜對了,玩家贏了。
  • 不然系統贏了。

import random

random.randint(1,20) 在1到20之間隨機生成一個整數,包含1和20;

 

#! /usr/bin/python

# -*- coding: utf-8 -*-

import os,sys

import random

ran = random.randint(0,20)

 

for i in xrange(1,7):

num1 = raw_input("please input a number: ")

num2 = int(num1)

if num2 == ran:

print 'you win'

break

else:

if num2 > ran:

print "猜大了"

elif num2 < ran:

print '猜小了'

else:

print 'you lose'

#!/usr/bin/python

import random

import sys

ran=random.randint(1,20)

#for i in xrange(1,7):

for i in xrange(1,7):

    while True:

        a=raw_input("plese input a num: ")

        if not a.isdigit():

            continue

        else:

            break

    a = int(a)

    if a == ran:

        print ('you win!')

        break

    else:

        if a > ran:

            print 'too big'

            print 'you have '+str(6-i)+' Test'

        elif a < ran:

            print 'too small'

            print 'you have '+str(6-i)+' Test'

        else:

            print 'you win!'

    if i==6:

        print 'you lose!'

 

4. 流程控制while:

while與for相比:

for循環用在有次數的循環上。

while循環用在有條件的控制上。

 

while循環,直到表達式變爲假,才退出while循環,表達式是一個邏輯表達式,必須返回一個true或false。

語法:

while expression

statement(s)

1.

#! /usr/bin/python

while 1:

print 'hello'

注:while 1: 表示true,因此執行下面的print ‘hello',因爲沒有表達式爲false,因此一直循環下去,處於死循環狀態

 

#! /usr/bin/python

n = 0

while not n == 5:

print 'hello'

n += 1

注;循環一次n變爲1,循環5次後n==5 ,第六次循環時n 已經等於5,條件false退出不執行後面循環。

 

2.

#! /usr/bin/python

n = 0

while True:

if n ==5:

break

print 'hello'

n += 1

 

3.

#! /usr/bin/python

while True:

print 'hello'

a = raw_input("please input something(q exit): ")

if a == 'q':

break

 

4.

#! /usr/bin/python

a = ''

while a != 'q':

a = raw_input("please input something(q for exit): ")

print 'hello'

注:先給a一個初始值,當鍵盤輸入q時退出循環

 

5.

#! /usr/bin/python

a = ''

while a != 'q':

a = raw_input("please input something(q for exit): ")

print 'hello'

if not a:

break

注:a等於任何非空字符串時都是正確的,因此not a 爲false;

a 等於空字符串時false,not a 爲true,因此執行後面break;

 

else:

while循環也支持else,和for循環同樣,循環正常結束後執行else下內容;

正常結束爲遇到假的表達式時退出。

當循環中使用break結束或則執行過程總按ctrl c 退出不執行else

 

#! /usr/bin/python

a = ''

while a != 'q':

a = raw_input("please input something(q for exit): ")

print 'hello'

if not a:

break

else:

print 'main end'

相關文章
相關標籤/搜索