and和or
在Python中,and和or的用法有点奇怪,不想C++中的位运算和逻辑判断公用&和|。
and
倘若两侧都为真,则返回右侧的值,否则返回假
or
倘若两侧都为真,则返回左侧的值,否则返回假
三目运算符
在C++中有形如?:的三目运算符,然而在Python中,三目运算是使用if和else达成的,例如:
a if a>b else b
表达的意思为:若 (a>b) 则为 (a) ,否则则为 (b) ,意为取max
可以巧妙利用如:
a=int(input())
b=int(input())
print("a>b") if a>b else print("a<b") if a<b else print("a=b")
实现一个简单的判断大小的程序
List
概念
Python中的list基本上相当于一个强化版的C++中的数组。
下标
和数组类似,序列也是从0开始编号,到 (len-1) 之间存储有效信息。但不同于C++的是,Python中的List可以从 (-len) 到 (len-1) 为下标进行访问,例如对一个长度为5的序列a来说,a[4]=a[4-len]=a[-1]
基本操作
切片
序列切片是一种简单的输出序列元素的方法,基本格式为list_name[ start : end : step ]
例如:
a=[1,2,3,4,5,6,7,8,9,0]
print(a[:5]) #输出0~4
print(a[:]) #输出整个序列
print(a[::2]) #以每三个输出一个
相加
相同类型的序列可以直接相加
a=[1,2,3]
b=[4,5,6]
c=a+b
print(c[:])
相乘
任意类型的序列List都可以通过 (List imes n) 得到一个重复 (n) 次的新序列,例如:
a=[1,2,3]
b=a*3
print(b[:])
in
和C++的find函数相似,Python中的in可以检查某个元素是否在序列中,返回True或False,例如:
a=[1,2,3]
print(1 in a)
此外,还有not in函数,作用显然
max & min
用于得到序列中最大和最小的元素
len
用于得到序列的长度
str
将序列转换为字符串
a=[1,2,3]
b=str(a)
print(b," ",type(b))
list
将元组转换为序列
例如:
a=(1,2,3) #元组和struct或者class有点像,但是不支持修改元素值
b=list(a)
print(b," ",type(b))