python(二) 字符串 列表

来源:互联网 发布:2017年nba新秀数据排名 编辑:程序博客网 时间:2024/05/16 09:35

练习:带循环和条件判断的给定一个数值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<num<=100:
        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)"


方法二,利用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


3.死循环while...  else.....


模拟shell输入环境

while True:
    cmd = raw_input("[root@>>> ~]# ")
    if not cmd:
        continue
    elif cmd == "quit":
        break
    else:
        print "run %s" %(cmd)



##字符串

  字符串定义的三种方式:'hello'   "hello"     """hello"""

      注意三重引号有三个作用:

     • 块注释:多行代码注释
     • 函数的doc文档
     • 字符串格式化

转义符号:一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
       \n: 代表换行符 \": 代表双引号本身
       \t: 代表tab符 \': 代表单引号本身

操作符

成员操作符: in

连接操作符: and

重复操作符:*



*索引:获取特定偏移的元素,给出一个字符串,可输出任意一个字符,如果索引为负数,就是相当于从后向前数。

*切片

切片S[i:j]提取对应的部分作为一个序列:
•上边界并不包含在内;
•如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;
•扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;切片s[:]获取从偏移量为0到末尾之间的元素,是实现有效拷贝的一种方法


字符串的常用操作:

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异常;


str.center(width[,fillchar])  返回一个长为width的新字符串,在新字符串中原字符居中,其他部分用fillchar指定的符号填充,未指定时通过空格填充。字符串常用操作:

str.ljust()  左边填充     str.rjust()右边填充

str.count(sub[, start[, end]]) -> int   返回sub在str中出现的次数,如果start与end指定,则返回指定范围内的sub出现次数


str.split([sep[,maxsplit]])    以sep字符串作为分割符对str进行切割,默认为空格


str.join()




案例一:

根据变量名的命名规则,判断变量名是否合法

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 "合法"

打印字符串对应的索引号:

s = "hello"

for i  in range(len(s)):

       print "%s %d"  %(s[i],i)



##zip 分包

a =  "ABC"

b =  "abc"

zip (a,b)





##列表

定义一个空列表
     list = [ ]

定义一个包含元素的列表,元素可以是任意类型,包括数值类型,列表,字符串等均可

    list = ["fentiao", 4, 'gender']
    list1 = ['fentiao',(4,'male')]


工厂函数方式创建列表:

li = list("hello")

列表的索引、切片,拼接+, 重复*, 成员操作符



可以通过for i in list1进行遍历列表中的各个元素.



更新列表   .append,   .extend;

append:  添加一个元素

extend: 添加一个列表



 

删除列表;

.pop()   :按照索引删除列表中的数 默认删除最后一个

.remove  删除列表中的某一个元素



列表的排序

.insert( )      插入元素

.reverse( )    倒置顺序

.ip.sort( )      排序


综合考察练习:
案例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 "超过三次"



案例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"


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小桔灯 ivd 冰心的作品 小桔灯 冰心小桔灯朗读 小桔灯内容简介 小桔灯书 小桔灯家教 小桔灯舞蹈 小桔灯的制作 小桔灯 作文 寄小读者 小桔灯 小桔灯怎么制作 小桔灯阶梯作文 小桔灯点评 小桔灯的做法 小桔灯在线阅读 小桔灯分类信息网 课文小桔灯 小桔灯之歌 小桔灯故事 爱的小桔灯 小桔灯出版社 小桔灯作者 小桔灯做法 手工制作小桔灯 怎样制作小桔灯 自制小桔灯 小桔灯读书笔记 小桔灯歌曲 小桔灯作文网站 小桔灯mp3 小桔灯背景 小桔灯论坛 小桔灯txt 冰心散文 小桔灯 小桔灯 课文 冰心的作品小桔灯 如何制作小桔灯 小桔灯ppt 快乐小桔灯歌曲 冰心小桔灯教案 小桔灯的作文