Python學習之旅——迴圈 判斷 字串 列表 出入棧

練習:帶迴圈和條件判斷的給定一個數值num, 使用者輸入使用raw_input()函式來提示使用者輸入一個1和100之間的數,如果使用者輸入的數等於num, 顯示成功並退出。否則顯示一個錯誤資訊然後再次提示使用者輸入數值,直到滿足條件為止。

方法一:利用if語句

#!/usr/bin/env python

#coding:utf-8

for num in range(1,101):

num = input(‘Please input the correct number(0-100):’)

if 68

print “the number is high”

elif 0<=num<68:

print “the number is low”

elif num == 68:

print “Congratulations,right”

exit()

else:

print “Please input correct number(0-100)”

Python學習之旅——迴圈 判斷 字串 列表 出入棧

方法二,利用while 和if 語句相巢狀

num = 89

while True:

guess_num = input(“猜測<1-100之間的數>:”)

if num == guess_num:

print “恭喜猜中”

exit()

elif num > guess_num:

print “too small”

else:

print “too large”

## while 迴圈

1。while中 break和continue的區別

break: 遇到break,跳出所有的迴圈;

continue: 跳出此次迴圈,回到迴圈的開始繼續執行;

例如:列印1-10之間的數並且跳過5

2。while if 的運用

#!/usr/bin/env python

# coding:utf-8

i = 0

while i < 10:

i += 1

if i == 5:

continue

print i

Python學習之旅——迴圈 判斷 字串 列表 出入棧

3。死迴圈while。。。 else。。。。。

模擬shell輸入環境

while True:

cmd = raw_input(“[root@>>> ~]# ”)

if not cmd:

continue

elif cmd == “quit”:

break

else:

print “run %s” %(cmd)

Python學習之旅——迴圈 判斷 字串 列表 出入棧

##字串

字串定義的三種方式:‘hello’ “hello” “”“hello”“”

注意三重引號有三個作用:

• 塊註釋:多行程式碼註釋

• 函式的doc文件

• 字串格式化

轉義符號:一個反斜線加一個單一字元可以表示一個特殊字元,通常是不可列印的字元

\n: 代表換行符 \“: 代表雙引號本身

\t: 代表tab符 \‘: 代表單引號本身

運算子

成員運算子: in

連線運算子: and

重複運算子:*

Python學習之旅——迴圈 判斷 字串 列表 出入棧

*索引:獲取特定偏移的元素,給出一個字串,可輸出任意一個字元,如果索引為負數,就是相當於從後向前數。

*切片

切片S[i:j]提取對應的部分作為一個序列:

•上邊界並不包含在內;

•如果沒有給出切片的邊界,切片的下邊界預設為0,上邊界為字串的長度;

•擴充套件的切片S[i:j:k],其中i,j含義同上,k為遞增步長;切片s[:]獲取從偏移量為0到末尾之間的元素,是實現有效複製的一種方法

Python學習之旅——迴圈 判斷 字串 列表 出入棧

字串的常用操作:

str。capitalize() //將首字母大寫

str。strip() ## 刪除首尾的字串或者空格

str。endswith() ##判斷以什麼結尾,返回為布林值

str。startswith() ##判斷以什麼開頭返回布林值

str。isalnum() //判斷是否都是字母或數字

str。isalpha() //判斷是否都是字母

str。isdigit() //判斷是否都是數字

str。islower() //判斷是否都是小寫

str。isspace() //判斷是否都是英文空格

str。istitle() //判斷是不是都是標題(有大小寫)

str。isupper() //判斷是不是都為大寫字母

str。find(sub[,start[,end]])

- 判斷sub是否在str中,存在返回索引值,不存在返

回-1。

str。index(sub[,start[,end]])

- 與find方法函式功能相同,如果sub不存在時丟擲

ValueError異常;

Python學習之旅——迴圈 判斷 字串 列表 出入棧

str。center(width[,fillchar]) 返回一個長為width的新字串,在新字串中原字元居中,其他部分用fillchar指定的符號填充,未指定時透過空格填充。字串常用操作:

str。ljust() 左邊填充 str。rjust()右邊填充

str。count(sub[, start[, end]]) -> int 返回sub在str中出現的次數,如果start與end指定,則返回指定範圍內的sub出現次數

Python學習之旅——迴圈 判斷 字串 列表 出入棧

str。split([sep[,maxsplit]]) 以sep字串作為分割符對str進行切割,預設為空格

Python學習之旅——迴圈 判斷 字串 列表 出入棧

str。join()

Python學習之旅——迴圈 判斷 字串 列表 出入棧

案例一:

根據變數名的命名規則,判斷變數名是否合法

while True:

s = raw_input(”變數名:“)

if not (s[0]。isalpha() or s[0]==”_“):

print ”不合法“

else:

# 依次讀取除了第一個字元之外的所有字元;

for i in s[1:]:

if not(i。isalnum() or i==”_“):

print ’不合法‘

break

else:

print ”合法“

Python學習之旅——迴圈 判斷 字串 列表 出入棧

列印字串對應的索引號:

s = ”hello“

for i in range(len(s)):

print ”%s %d“ %(s[i],i)

Python學習之旅——迴圈 判斷 字串 列表 出入棧

##zip 分包

a = ”ABC“

b = ”abc“

zip (a,b)

Python學習之旅——迴圈 判斷 字串 列表 出入棧

##列表

定義一個空列表

list = [ ]

定義一個包含元素的列表,元素可以是任意型別,包括數值型別,列表,字串等均可

list = [”fentiao“, 4, ’gender‘]

list1 = [’fentiao‘,(4,’male‘)]

Python學習之旅——迴圈 判斷 字串 列表 出入棧

工廠函式方式建立列表:

li = list(”hello“)

列表的索引、切片,拼接+, 重複*, 成員運算子

Python學習之旅——迴圈 判斷 字串 列表 出入棧

可以透過for i in list1進行遍歷列表中的各個元素。

Python學習之旅——迴圈 判斷 字串 列表 出入棧

更新列表 。append, 。extend;

append: 新增一個元素

extend: 新增一個列表

Python學習之旅——迴圈 判斷 字串 列表 出入棧

Python學習之旅——迴圈 判斷 字串 列表 出入棧

刪除列表;

。pop() :按照索引刪除列表中的數 預設刪除最後一個

。remove 刪除列表中的某一個元素

Python學習之旅——迴圈 判斷 字串 列表 出入棧

列表的排序

。insert( ) 插入元素

。reverse( ) 倒置順序

。ip。sort( ) 排序

Python學習之旅——迴圈 判斷 字串 列表 出入棧

綜合考察練習:

案例1

1。 使用者名稱和密碼分別儲存在列表中;

2。 使用者登入時,判斷該使用者是否註冊;

2。 使用者登入時,為防止駭客暴力破解, 僅有三次機會;

3。 如果登入成功,顯示登入成功(exit(), break)。

方法一

#!/usr/bin/env python

#coding: utf-8

users = [”user1“, ”user2“, ”user3“]

passwords = [”123“, ”456“, ”789“]

i = 0

while i < 3:

name = raw_input(”請輸入使用者名稱:“)

if name not in users:

print ”使用者未註冊“

break

password = raw_input(”請輸入密碼:“)

i += 1

index = users。index(name)

if password == passwords[index]:

print ”恭喜登入成功“

break

else:

print ”請輸入正確的使用者名稱或密碼!“

else:

print ”已登入三次,請稍後再試“

方法二:

#!/usr/bin/env python

# coding:utf-8

user = [”westos“,”redhat“,”admin“,”lee“]

passwd = [”123“, ”344“, ”312“, ”324“]

trycount = 0

while trycount < 3:

trycount +=1

in_user = raw_input(”輸入使用者名稱:“)

if in_user not in user:

print ”使用者未註冊“

break

in_passwd = raw_input(”輸入密碼:“)

for i in range(len(user)):

if in_user == user[i] and in_passwd == passwd[i]:

print ”登陸成功“

exit()

else:

print ”密碼錯誤“

else:

print ”超過三次“

Python學習之旅——迴圈 判斷 字串 列表 出入棧

案例2

出入棧

stack = [ ]

info = ”“”

棧操作

1。 出棧

2。 入棧

3。 檢視棧元素

4。 退出

“”“

print info

while 1:

choice = raw_input(”Choice:“)。strip()

if choice == ’1‘:

if not stack == []:

stack。pop()

else:

print ”棧為空“

elif choice == ’2‘:

value = raw_input(”請輸入入棧的值:“)。strip()

stack。append(value)

elif choice == ’3‘:

print ”棧元素:“,

for i in stack:

print i,

print

elif choice == ’4‘:

exit()

else:

print ”not valid choice“

Python學習之旅——迴圈 判斷 字串 列表 出入棧