一.字符串及其切片(小补充)
从本质上讲,字符串是由多个字符构成的,字符间是有顺序的,这个顺序号就称为索引
1.获取单个字符,具体语法为
strname[index]
与列表一样,从左向右以0开始,从右向左以-1开始
实例
url = 'http://c.biancheng.net/python/'
#获取索引为10的字符
print(url[10])
#获取索引为 6 的字符
print(url[-6])
得
i
y
2.获取多个字符(字符串切片)
具体格式为
strname[start : end : step]
strname为要截取的字符串,start不指定默认为0,end不指定默认为字符串的长度,step为步数
例
url = 'http://c.biancheng.net/java/'
#获取索引从3处22(不包含22)的子串
print(url[7: 22]) # 输出 zy
#获取索引从7处到-6的子串
print(url[7: -6]) # 输出 zyit.org is very
#获取索引从-7到6的子串
print(url[-21: -6])
#从索引3开始,每隔4个字符取出一个字符,直到索引22为止
print(url[3: 22: 4])
运行结果
c.biancheng.net
c.biancheng.net
c.biancheng.net
pcaen
高级用法
url = 'http://c.biancheng.net/java/'
#获取从索引5开始,直到末尾的子串
print(url[7: ])
#获取从索引-21开始,直到末尾的子串
print(url[-21: ])
#从开头截取字符串,直到索引22为止
print(url[: 22])
#每隔3个字符取出一个字符
print(url[:: 3])
得
c.biancheng.net/java/
c.biancheng.net/java/
http://c.biancheng.net
hp/bne.ta/
实际上我们第一,二组省略了end,step,第三组省略了start,第四组只给出了步数
那么,我们print(url[:: -1])就可以轻易做到将字符串翻转,因为第三位为负数时逆向读取
3.获取字符串长度或字节数
可用len函数,例如:
>>> a='http://c.biancheng.net'
>>> len(a)
22
我们获取字节数时,目前一般采用UTF-8编码方式,例如
>>> str1 = "人生苦短,我用Python"
>>> len(str1.encode())
27
4.spilt()方法:利用不同分隔符分隔
>>> str = "C语言中文网 >>> c.biancheng.net"
>>> str
'C语言中文网 >>> c.biancheng.net'
>>> list1 = str.split() #采用默认分隔符进行分割
>>> list1
['C语言中文网', '>>>', 'c.biancheng.net']
>>> list2 = str.split('>>>') #采用多个字符进行分割
>>> list2
['C语言中文网 ', ' c.biancheng.net']
>>> list3 = str.split('.') #采用 . 号进行分割
>>> list3
['C语言中文网 >>> c', 'biancheng', 'net']
>>> list4 = str.split(' ',4) #采用空格进行分割,并规定最多只能分割成 4 个子串
>>> list4
['C语言中文网', '>>>', 'c.biancheng.net']
>>> list5 = str.split('>') #采用 > 字符进行分割
>>> list5
['C语言中文网 ', '', '', ' c.biancheng.net']
>>>
二.三目运算符(条件运算符)
我们给出一个具体的例子,假设现在有两个数字,我们希望获取较大的一个,可使用if else语句
if a>b:
max = a;
else:
max = b;
然而python为我们提供了更简单的写法
max = a if a>b else b
格式即为 表达式1 if condion else 表达式2
上式含义为:如果a>b成立,就把a作为表达式的值,并赋给变量max
如果a>b不成立,就把b作为表达式的值,并赋给变量max
特别的,我们来看一下三目运算符的嵌套
a if a>b else c if c>d else d
应该理解为
a if a>b else ( c if c>d else d )
给个实例
a = int( input("Input a: ") )
b = int( input("Input b: ") )
print("a大于b") if a>b else ( print("a小于b") if a<b else print("a等于b") )
该程序先对a>b求值,如果该表达式为True,则执行第一个表达式,否则执行else后面的内容,即
print("a小于b") if a<b else print("a等于b") )