零基础学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}.")

二、列表

1. list

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

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

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

len(classmates)

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

Z=[]
len(Z)

索引来访问list中每个位置的元素,最后一个元素的索引是len(list)-1,索引正序从0开始,倒序从-1开始,即可以用-1做索引直接获取最后一个元素。以此类推,也可获取倒数第2、3个元素:

当索引超出范围时,报IndexError错误。

可以在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为二维数组。

2. tuple

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

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

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

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的不变指的是指向永远不变

虽然元组中的元素值不允许修改,但可以对元组进行连接、复制的组合运算:

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
tup3 = tup1 + tup2   #连接
tup4 = tup3 * 2      #复制

同样,元组中的元素不允许删除,但可以使用del语句删除整个元组:

tup = ('Google', 'Runoob', 1997, 2000)
print(tup)
del tup
print("删除后的元组tup:")
print(tup)

tuple(iterable)将可迭代系列转换为元组:

list1 = ['Gogle', 'Taobao', 'Runoob', 'Baidu']
tuple1 = tuple(list1)
tuple1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值