单词
digit 数字
string 字符串
float 浮点,小数
字符串详解
seq 字符串
seq[ind]
seq[ind1:ind2] 获得下标从ind1 - ind2 之间的元素
seq * expr 字符串*多少次
obj in seq 判断obj元素是否在seq中
obj not in seq 半段obj元素是否不在seq中
内建函数
序列对象操作
list将字符串转列表
list('ABC')
list(range(5))
tuple将字符串转元组
tuple('DSA')
tuple(range(5))
str将对象转为字符串
str(100)
str([1,2,3])
len():统计字符串长度
reversed()函数反转序列对象
例子:
num = [random.randint(1,100) for i in range(10)]
print(num)
[29, 100, 55, 78, 76, 40, 32, 49, 93, 2]
reversed(num)
for i in reversed(num):
print(i)
也可以转换出来打印成列表
list(reversed(num))
sorted()排序,默认升序
sorted(变量,reverse=True)
>>> sorted(num)
[2, 29, 32, 40, 49, 55, 76, 78, 93, 100]
>>> sorted(num,reverse=True)
[100, 93, 78, 76, 55, 49, 40, 32, 29, 2]
enumerate() 函数可以同时得到下标和值
from random import randint
nums = [randint(1,100) for i in range(10)]
print(nums)
for data in enumerate(nums):
print(data)
for ind,num in enumerate(nums):
print(ind,num)
for i in range(len(nums)):
print(i,nums[i])
字符串操作
比较操作符:
切片操作符:
成员关系操作符:
编码:ASCII
美国信息标准交换代码
欧洲常用编码:ISO-8859-1 LATIN-1
中国常用编码:GB2312/GBK/GB18030
iso 推出万国码 Unicode,其中最多utf-8
ord('')可以看到字符的编码值
字符串比较大小是比较编码值的大小
>>> ord('a')
97
比较有结果即停止
>>> 'a' > 'Ab'
True
字符串格式化操作符
%s 替换
>>> '%s is %s year old' % ('bob',20)
'bob is 20 year old'
%d 10进制整数
>>> '%s is %d year old' % ('bob',20)
'bob is 20 year old'
%f 浮点数,小数
>>> '5 / 3 = %f' % (5 / 3)
'5 / 3 = 1.666667'
>>> '5 / 3 = %5.2f' % (5 / 3) 共5列,小数点2位
'5 / 3 = 1.67'
>>> '%s%s' % ('bob',20)
'bob20'
>>> '%8s%5s' % ('bob','20') %8s 占8列右对齐
' bob 20'
>>> '%-8s%-5s' % ('bob','20') -%8s 占8列左对齐
'bob 20 '
不常用的
>>> '%#o' % 10 以8进制表示出结果
'0o12'
>>> '%#x' % 10 以16进制表示结果
'0xa'
>>> '%#e' % 10 科学计数法
'1.000000e+01'
>>> '%5d' % 10 占5列不足用空格补齐
' 10'
>>> '%05d' % 10 占5列不足用0补齐
'00010'
format函数
与%s等格式化一样,实现字符串格式化
>>> '{} is {} years old'.format('bob',20)
'bob is 20 years old'
>>> '{1} is {0} years old'.format(20,'bob')
'bob is 20 years old'
原始字符串r''
>>> win_path = 'c:\tmp'
>>> print(win_path)
c: mp
>>> win_path = r'c:\tmp'
>>> print(win_path)
c:\tmp
>>> win_path = 'c:\\tmp'
>>> print(win_path)
c:\tmp
>>> win_path
'c:\\tmp'
案例
'+************************************************+'
' hello world '
' great work '
'+************************************************+'
1.
>>> '+%s+' % ('*' * 48)
'+************************************************+'
2.
>>> 'hello world'.center(48)
' hello world '
3.判断是否全部是数字
>>> s1 = '1234'
>>> s2 = '123a4'
>>> def is_d(s):
... for i in s:
... if i not in '1234567890':
... return False
... reture True #return 有多个也会执行一个,和break一样,
>>> is_d(s1)
True
>>> is_d(s2)
False
4.使用字符串方法,判断是否完全由数字构成
is.isdigit()
s1.isdigit()
s2.isdigit()
5.居中
center()
>>> s1.center(30)
' 1234 '
>>> s1.center(30,'*') 居中使用*补全
'*************1234*************'
6.左对齐ljust()
>>> s1.ljust(30)
'1234 '
>>> s1.ljust(30,'*')
'1234**************************'
7.右对齐''
>>> s1.rjust(30,'@')
'@@@@@@@@@@@@@@@@@@@@@@@@@@1234'
8.移除空白字符 包括空格,回车,tab
>>> ' \thello world.\n'.strip()
'hello world.'
>>> ' \thello world.\n'.lstrip() 左端
'hello world.\n'
>>> ' \thello world.\n'.rstrip() 右端
' \thello world.'
9.大小写转换
upper()
lower()
>>> 'adas'.upper()
'ADAS'
>>> 'SDADSAD'.lower()
'sdadsad'
10.判断有字母并且小写为真 islower() 有字母并且小写
>>> 'asda123'.islower()
True
>>> 'asAa123'.islower()
False
>>> 'ASDAD123'.islower()
False
判断有字母并且大写为真 isupper() 有字母并且大写
>>> 'SADSAD123'.isupper()
True
>>> 'SAad123'.isupper()
False
>>> 'SAad123'.isupper()
False
判断全部为数字为真isdigit() 全数字
>>> '12324'.isdigit()
True
>>> '12324aa'.isdigit()
False
>>> '12324aAA'.isdigit()
False
判断字符全为字母为真isalpha() 全字母
>>> 'ADS'.isalpha()
True
>>> 'asd'.isalpha()
True
>>> 'asd123'.isalpha()
False
判断字符全部是字母或数字 isalnum()
>>> 'dasd123'.isalnum()
True
>>> 'dasd_123'.isalnum()
False
判断以xx开头,以xx结尾
startswitch();endswith()
>>> 'HAO123'.startswith('HAO')
True
>>> 'HAO123'.endswith('HAO')
False
>>> 'HAO123'.endswith('123')
True
切分字符串split()
>>> 'hao 123 asd'.split()
['hao', '123', 'asd']
切分字符串以'分割'
>>> 'hao-213-dsad'.split('-')
['hao', '213', 'dsad']
替换replac()
>>> 'dsdas'.replace('s','1')
'd1da1'
案例创建用户并且随机密码