0
点赞
收藏
分享

微信扫一扫

零基础学python编程思维(二) | 字符串、文本和列表

夕阳孤草 2022-02-17 阅读 35
python

上一篇零基础学python编程思维(一) | 数学运算留了个小尾巴,即逻辑运算,这里先补充更新:

四:逻辑运算

a = 10
b = 20
if (a and b):     #布尔"与":如果a为False,返回a的值,否则返回b的计算值
    print("变量a和b都为True")
else:
    print("变量a和b有一个不为True")
if (a or b):      #布尔"或":如果a是True,返回a的值,否则返回b的计算值
    print("变量a和b至少有一个变量为True")
else:
    print("变量a和b都不为True")
a = 0             #此时a为False
if (a and b):
    print("变量a和b都为True")
else:
    print("变量a和b有一个不为True")
if (a or b):
    print("变量a和b至少有一个变量为True")
else:
    print("变量a和b都不为True")
if not(a and b):      #布尔"不":如果a为True,返回False,否则返回True
    print("变量a和b至少有一个为False")
else:
    print("变量a和b都为True")

之前一直困惑的右两个地方:一是a和b的赋值运算为什么可以拿来做逻辑判断;二是单独运行第三行代码中的“a and b”时,为什么输出的是b的值20。第一个问题是因为在python中非零整数值就代表True,所以这两个变量可以做逻辑运算,后面更改a的取值为0时,a此时为False。第二个问题我们可以尝试将a与b的位置进行调换得到答案:

a and b
Out[21]: 20

b and a
Out[22]: 10

a or b
Out[23]: 10

b or a
Out[24]: 20

a and b
Out[25]: 20

b and a
Out[26]: 10

a or b
Out[27]: 10

b or a
Out[28]: 20

a = 0

a and b
Out[30]: 0

由上述运行结果可知,当a和b都为True时,and运算的输出结果是最后一个值(再加一个变量c也是同样),or运算的输出结果是第一个值;当a为False时,and运算输出结果为a的值,即0,代表False。

以上是自己的一点思考,如有不对,欢迎指正。


以下为本篇博客内容:

一、字符串

字符串的引用:

my_name = 'Vince'
my_age = 23
my_height = 157
my_weight = 46.5
my_eyes = 'Brown'
my_teeth = 'White'
my_hair = 'Brown'

print(f"Let's talk about {my_name}.")
print(f"She's {my_height} inches tall.")
print(f"She's {my_weight} kilograms heavy.")
print("Actually that's not heavy.")
print(f"She's got {my_eyes} eyes and {my_hair} hair.")
print(f"Her teeth are actually {my_teeth} depending on the coffee.")

total = my_age + my_height + my_weight
print(f"If I add {my_age}, {my_height}, and {my_weight} I get {total}.")

二、列表

list

list是一种有序的集合,这里的classmates就是一个list:

classmates=['Michael','Bob','Tracy']

len()获得list元素的个数: 

len(classmates)

 用索引来访问list中每个位置的元素,索引正序从0开始,倒序从-1开始。

 当索引超出范围,报IndexError错误。最后一个元素的索引是len(list)-1,还可以用-1做索引直接获取最后一个元素。以此类推,也可获取倒数第2、3个元素,当越界时报错。

可以往list中追加元素到末尾,也可以把元素插入到指定位置:

classmates.append('Adam')
classmates.insert(1,'Visstin')

删除末尾的元素直接用pop(),删除指定位置元素在括号中写索引位置:

classmates.pop(1)

把某个元素替换成其他元素,可以直接赋值给对应的索引位置:

classmates[1]='Sarah'

对list中的元素进行排序:

classmates.sort()

list中的元素的数据类型可以不同,甚至可以是另一个lsit:

L=['Apple',123,True]
s=['python','java',['asp','php'],'scheme']

其中s只有4个元素,其中s[2]是一个list,要取到php可以写作s[2][1],故s为二维数组。

若一个list为一个空的list,则其长度为0:

Z=[]
len(Z)

tuple

classmates2=('Michael','Bob','Tracy')

tuple也是一种有序列表,当定义了一个tuple,元素必须被确定下来,但一旦初始化就不能更改(不能增加/删除元素,不能赋值成其他元素)。但正因为tuple不可变,所以代码更安全,如果可能,应尽量使用tuple代替list。

若要定义一个空的tuole,可以写成():

t = ()

但要定义一个只有一个元素的tuple,写成(1)定义的只是1这个数字,因为()既可以表示tuple又可以表示数学公式中的小括号。为消除歧义,只有一个元素的tuple定义时必须加一个,:

t=(1)
t=(1,)

再看下面这个例子:

t=('a','b',['A','B'])
t[2][0]='X'
t[2][1]='Y'

表面看tuple的元素确实变了,但实际上变化的是list的元素。tuple一开始指向的list并没有变成别的list,所以tuple的不变指的是指向永远不变。

举报

相关推荐

0 条评论