python 进阶学习之9

序列

有序排列,包括下面这些:字符串(普通字符串和unicode 字符串),列表,和元组类型。

成员关系操作符 (in, not in)

>>> seq=[1,5,7,9,77]
>>> seq[3]
9
>>> seq[3:4]
[9]
>>> seq[3:5]
[9, 77]
>>> seq*2
[1, 5, 7, 9, 77, 1, 5, 7, 9, 77]
>>> seq2=[12,33]
>>> seq+seq2
[1, 5, 7, 9, 77, 12, 33]
>>> obj=3
>>> obj in seq
False
>>> obj not in seq
True

extend()把两个或者多个列表对象合并

切片操作符 ( [], [:], [::] )
>>> s[::-1] # 可以视作"翻转"操作
>>> s[::2] # 隔一个取一个的操作
开始和结束素引值可以超过字符串的长度
>>> s='abcde'
>>> i=-1
>>> for i in range(-1,-len(s),-1):
...   print s[:i]
... 
abcd
abc
ab
a

用None 作为索引值

>>> for i in [None]+range(-1,-len(s),-1):
...   print s[:i]
... 
abcde
abcd
abc
ab
a

内建函数(BIFs)

内建函数list(),str()和tuple()被用做在各种序列类型之间转换。

basestring() 抽象工厂函数,其作用仅仅是为str 和unicode 函数提供父类,所以不能被实例化,也不能被调用

>>> import string
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.digits
'0123456789'

for 循环的else 语句是一个可选项,它只在for 循环完整的结束,没有遇到break 时执行

#!/usr/bin/python
import string
import keyword
alphas = string.letters+' '
nums=string.digits
myid=raw_input('input the name:')
if myid in keyword.kwlist:
  print 'wrong keyword'
else:
 if len(myid)<=1:
  if myid[0] in alphas:
    print 'right'
 else:
  if myid[0] not in alphas:
    print 'wrong first'
  else:
    for oth in myid[1:]:
       if oth not in alphas+nums:
        print 'wrong behind'
        break
    else:
       #if(oth==len(myid)-1):
        print 'right'
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值