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學習之旅——循環 判斷 字符串 列表 出入棧


分享到:


相關文章: