python函数语法机制 python函数定义语法( 二 )


我们可以使用[]来查找字符串当中某个位置的字符,用 len 来计算字符串的长度 。
我们可以在字符串前面 加上f表示格式操作,并且在格式操作当中也支持运算 , 比如可以嵌套上len函数等 。不过要注意 , 只有Python3.6以上的版本支持f操作 。
最后是None的判断,在Python当中None也是一个对象,所有为None的变量都会指向这个对象。根据我们前面所说的,既然所有的None都指向同一个地址,我们需要判断一个变量是否是None的时候,可以使用is来进行判断,当然用==也是可以的,不过我们通常使用is 。
理解了None之后,我们再回到之前介绍过的bool()函数 , 它的用途其实就是判断值是否是空 。所有类型的 默认空值会被返回False,否则都是True 。比如0,"",[], {}, ()等 。
除了上面这些值以外的所有值传入都会得到True 。
Python当中的标准输入输出是 input和print。
print会输出一个字符串,如果传入的不是字符串会自动调用__str__方法转成字符串进行输出 。默认输出会自动换行 ,如果想要以不同的字符结尾代替换行,可以传入end参数:
使用input时 , Python会在命令行接收一行字符串作为输入 。可以在input当中传入字符串,会被当成提示输出:
Python支持 三元表达式 ,但是语法和C++不同,使用if else结构,写成:
上段代码等价于:
Python中用[]表示空的list,我们也可以直接在其中填充元素进行初始化:
使用append和pop可以在list的末尾插入或者删除元素:
list可以通过[]加上下标访问指定位置的元素,如果是负数,则表示 倒序访问。-1表示最后一个元素,-2表示倒数第二个 , 以此类推 。如果访问的元素超过数组长度,则会出发 IndexError 的错误 。
list支持切片操作,所谓的切片则是从原list当中 拷贝 出指定的一段 。我们用start: end的格式来获取切片,注意,这是一个 左闭右开区间。如果留空表示全部获取 , 我们也可以额外再加入一个参数表示步长,比如[1:5:2]表示从1号位置开始,步长为2获取元素 。得到的结果为[1, 3] 。如果步长设置成-1则代表反向遍历 。
如果我们要指定一段区间倒序,则前面的start和end也需要反过来 , 例如我想要获取[3: 6]区间的倒序 , 应该写成[6:3:-1] 。
只写一个:,表示全部拷贝,如果用is判断拷贝前后的list会得到False 。可以使用del删除指定位置的元素,或者可以使用remove方法 。
insert方法可以 指定位置插入元素,index方法可以查询某个元素第一次出现的下标 。
list可以进行加法运算,两个list相加表示list当中的元素合并 。等价于使用extend 方法:
我们想要判断元素是否在list中出现 , 可以使用 in关键字 ,通过使用len计算list的长度:
tuple和list非常接近,tuple通过()初始化 。和list不同,tuple是不可变对象。也就是说tuple一旦生成不可以改变 。如果我们修改tuple , 会引发TypeError异常 。
由于小括号是有改变优先级的含义,所以我们定义单个元素的tuple, 末尾必须加上逗号  , 否则会被当成是单个元素:
tuple支持list当中绝大部分操作:
我们可以用多个变量来解压一个tuple:
解释一下这行代码:
我们在b的前面加上了星号,表示这是一个list。所以Python会在将其他变量对应上值的情况下,将剩下的元素都赋值给b 。
补充一点,tuple本身虽然是不可变的,但是 tuple当中的可变元素是可以改变的。比如我们有这样一个tuple:
我们虽然不能往a当中添加或者删除元素,但是a当中含有一个list,我们可以改变这个list类型的元素,这并不会触发tuple的异常:

推荐阅读