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学习之旅——循环 判断 字符串 列表 出入栈


分享到:


相關文章: