python获得用户输入的一个字符串(长度>3)_Python笔记(3)-字符串

字符串表示方式

第一种方式:

str1 = 'redhat'

第二种方式:

str2 = "redhat"

第三种方式:

str3 = """redhat"""

字符串类型转换

str() 将其他类型内容转换为字符串

int() 将字符串转换为为整数

float() 将字符串转换为浮点型

long() 将字符串转换为长整型

字符串常用操作1

字符串属于序列,序列支持如下操作:

1.索引

索引(s[i]):获取特定偏移的元素

给出一个字符串,可以输出任意一个字符,如果索引为负数,就相当于从后向前数

In [48]: s[0]

Out[48]: 'h'In [49]: s[-1]

Out[49]: 'o'In [50]: s[0]+s[-1]

Out[50]: 'ho'

2.切片

切片(s[i:j]):提取对应的部分作为一个序列:

上边界并不包含在内

如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度

In [51]: num='asdfgh'In [52]: num[0:2]

Out[52]: 'as'In [53]: num[:2]

Out[53]: 'as'

扩展:

s[i:j:k],其中i,j含义同上,k为递增步长

In [55]: num[0:5:2]

Out[55]: 'adg'

s[:]表示获取从偏移量为0到末尾之间的元素

In [56]: num[:]

Out[56]: 'asdfgh'

s[1:]表示获取从偏移量为1到末尾之间的元素

In [57]: num[1:]

Out[57]: 'sdfgh'

s[::-1]表示倒序显示所有元素

In [58]: num[::-1]

Out[58]: 'hgfdsa'

3.成员操作符(判断子串)

判断一个字符串是不是属于s字符串

In [59]: a='hello'In [60]: 'o' ina

Out[60]: True

In [61]: 'o' not ina

Out[61]: False

4.连接操作符

In [62]: a='hello'In [63]: b='world'In [64]: a+b

Out[64]: 'helloworld'

5.重复操作符

In [65]: "#"*10 #将#重复显示10次

Out[65]: '##########'In [66]: print "#"*10+"SYSTEM"+"#"*10

##########SYSTEM##########

字符串常用操作2

注:[]里面的内容表示可要可不要

str.capitalize()

将字符串首字母大写,并返回新的首写字母大写后的字符串

In [67]: str='admin enzo'In [68]: str.capitalize()

Out[68]: 'Admin enzo'

str.center(width[,fillchar])

返回一个新的字符串:原本的字符串居中显示在一个长度为width的字符串中。填充是使用指定的fillchar(默认是ASCII中的空格' ')完成的。如果width小于或等于len(s),则返回原始字符串

In [83]: str='admin'In [84]: str.center(11,'#')

Out[84]: '###admin###'

str.count(sub[,start[,end]])

返回sub在str中出现的次数,如果start与end指定,则返回指定范围内的sub出现次数

In [91]: str='aaaaaaa'In [92]: str.count('a',0,2)

Out[92]: 2

str.startswith(suffix[,start[,end]])

判断字符串是否以suffix开始,如果start和end指定,则返回str中指定范围内str子串是否以suffix结尾,如果是,返回True,否则返回False

str.endswith(suffix[,start[,end]])

判断字符串是否以suffix结束,如果start和end指定,则返回str中指定范围内str子串是否以suffix结尾,如果是,返回True,否则返回False

In [93]: str='i am enzo'In [94]: str.endswith('zo')

Out[94]: True

In [95]: str.endswith('zo',0,5)

Out[95]: False

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

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

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

与find方法函数功能相同,如果sub不存在时抛出ValueError异常

str.isalnum()

判断是否都是字母或数字

str.isalpha()

判断是否都是字母

In [104]: str='admin'In [105]: str.isalpha()

Out[105]: True

str.isdigit()

判断是否都是数字

str.islower()

判断是否都是小写

str.isspace()

判断是否都是英文空格

str.istitle()

判断是不是都是标题(有大小写)

str.isupper()

判断是不是都为大写字母

str.join(seq)

以str作为分隔符,将序列seq中的所有元素合并为一个新的字符串

In [107]: str='123'In [108]: seq='abc'In [109]: str.join(seq)

Out[109]: 'a123b123c'

str.replace(old,new[,count])

将str中的old字符串替换为new字符串,并将替换后的新字符串返回,如果count指定,则只替换前count个字符串

In [110]: str='h e llo'In [111]: str.replace(" ","")

Out[111]: 'hello'

str.split([sep[,maxsplit]])

以sep字符串作为分隔符对str进行切割,默认为空字符(包括空格、换行(\n)、制表符(\t)等)

maxsplit代表切割maxsplit+1次,默认为-1,即切割所有

In [127]: str='admin enzo tom'In [128]: str.split()

Out[128]: ['admin', 'enzo', 'tom']

In [129]: str.split(" ")

Out[129]: ['admin', 'enzo', 'tom']

str.strip([chars])

返回一个将str中首尾包含指定的chars字符删除的字符串,未指定时,删除首尾的空格

In [135]: str='admin enzo tom'In [136]: str.strip('m')

Out[136]: 'admin enzo to'In [137]: str.strip('am')

Out[137]: 'dmin enzo to'

str.lower()

将大写字母转换为小写

str.upper()

将小写字母转换为大写

str.ljust(width[,fillchar])

返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

width -- 指定字符串长度。

fillchar -- 填充字符,默认为空格

In [138]: str='hello'In [139]: str.ljust(10,'*')

Out[139]: 'hello*****'

str.rjust(width[,fillchar])

返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

width -- 指定字符串长度。

fillchar -- 填充字符,默认为空格

练习1:

用户输入一个变量名,判断是否合法(使用字符串常用操作)

变量名的命名规则:由数字、字母、_组成并且不能以数字开头

#!/usr/bin/env python#coding:utf-8

whileTrue:

name=raw_input("输入一个变量名:")ifname[0].isdigit():print "变量名不合法(error 1)"

else:for i in name[1:]:if not(i.isalnum() or i == "_"):print "变量名不合法(error 2)"

break

else:print "变量名合法"

执行结果:

练习2:

用户输入一个变量名,判断是否合法(使用string模块)

变量名的命名规则:由数字、字母、_组成并且不能以数字开头

注:

In [48]: import string

In [49]: string.digits

Out[49]: '0123456789'

In [50]: string.letters

Out[50]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

#!/usr/bin/env python#coding:utf-8

importstringwhileTrue:

name=raw_input("输入一个变量名:")if name[0] instring.digits:print "变量名不合法(error 1)"

else:for i in name[1:]:if not(i in string.digits or i in string.letters or i == "_"):print "变量名不合法(error 2)"

break

else:print "变量名合法"

执行结果:

你可能感兴趣的:(python获得用户输入的一个字符串(长度>3)_Python笔记(3)-字符串)