List列表结构
列表与其他语言的数组相同,列表的数据结构是元素放在中括号[]中,每个元素通过逗号
列表名称=[元素1,元素2.......]
列表中的元素类型可以相同,也可以不同
list1=[12,3,4,5,6,7]
list2['苹果','橘子',1,False]
可以通过访问list列表变量的下表来访问列表中值
list1=['香蕉','苹果']
print(list1[1]) #苹果
列表的元素中还可以是另外一个列表,形成多维列表,通过中括号的组合,可以对多维列表元素进行访问
list1=[["apple","1234"],["grape","5678"]]
print(list1[0]) #["apple","1234"]
print(list[0][1]) #1234
range()函数
创建一个有序的整数列表
range(n)
产生0到n-1的元素值
list1=range(6)
range(m,n)
产生的元素从m到n-1
range(3,8)
注意如果m的值小于n的值,那么将会产生一个空的列表
range(m,n,o)
产生元素值为m到 n-1 间隔为o
range(1,5,2)
其中间隔值也可以为负数,此时M的值必须大于N才行,此时产生从m 到n+1的元素
range(8,3-2)
高级列表操作
下表为列表操作的常用方法 表中假设 list=[1,2,3,4,5,6],x=[8,9],n,n1,n2,n3 为整数
for循环
for循环通常用于指定固定次数的循环
for 循环变量 in 列表 :
执行代码
list1=['a','b','c','d']
for i in list1:
print(i,end=",")
案例-计算等差数列的和
sum=0
i=int(input("请输入一个正整数:"))
for a in range(1,i+1):
sum+=a;
print("1到%d的总和为%d" % (i,sum))
嵌套循环-九九乘法表
for i in range(1,10):
for j in range(1,10):
tmp=i*j
print("%d*%d= %-2d " %(i,j,tmp),end=" ")
print()
break和continue 命令
break 用于中断退出整个循环
continue 用于退出当前循环,并跳转到下一次循环继续执行
for i in range(5):
if(i==3):
break
print(i,end=",")
for i in range(8):
if(i==3):
continue
print(i,end=",")
for…if…else 循环
for…else 循环命令通常会和if及break 命令配合使用
for 变量 in 列表:
程序块一
if(条件表达式):
程序块二
break
else:
程序块三
判断是一个数是不是质数
n=int(input("请输入一个大于1的整数:"))
if(n==2):
print("2 是质数")
else:
for i in range(2,n):
if(n%i==0):
print("%d不是质数" % n)
break
else:
print("%d是质数" % n)
while 循环
通常用于执行非固定次数的循环 ,基本语法结构为
while (条件表达式):
程序代码
n=0
total=0
while (n<100):
total+=n
n=n+1
print("最后输出的总数是:% 5d" % (total))
案例-输入n个人的成绩,当输入成绩为-1时,停止输入并计算总分和平均分
person=0
total=0
score=0
while (score!=-1):
person+=1
score=int(input("请输入第 %d 人的成绩:" % person))
total+=score
average=total/person
print("本班的成绩为:%5d,平均分为:% 5d" % (total,average))
append 和extend的区别
append()和extend()方法都是将数据添加到列表最后。
append方法的可以接受的参数可以是元素也可以是列表,当参数是列表时,会把这个列表作为一个元素添加到原列表。
extend方法入参只能是列表,不能是元素,如果入参是列表时,会将该列表中元素逐一加到列表中
Tuple 元组
元组的结构与列表相同,不同在于元组的元素个数和元素值不能被改变,元组也可以称为是不可变的列表
元组相比列表有如下有点:
- 因为内容不可变,执行速度相对较快
- 相比列表数据较为安全
元组的格式:
元组名称=(元素1,元素2,元素…)
元组元素都放在小括号中(列表使用中括号)
tuple1=(1,2,3,4,5)
元组和列表可以相互转换
元组转换为列表:
list(tuple1)
列表转换为元组:
tuple(list1)
字典(dict)
字典是以"键-值"对的形式存放在大括号中,其语法结构为
字典名称={键1:值1,键2:值2}
dict1={"香蕉":20,"苹果":30,"橘子":60}
print(dict1["香蕉"])
#结果是20
字典的特点
- 字典中的元素是无序的,因此不能使用通过下标的方式来定位元素,可以通过键值获取对应的值
- 修改字典中元素值是对“键” 设置新的值
例如:
删除字典中特定的元素
del dict1["香蕉"]
删除整个字典变量
del dict1
字典的常用操作
字典的keys方法获取字典所有“键”组成的组合,数据类型为dict_keys,values方法获取有字段所有值组成的组合,数据类型为dict_values,如果想要使用这个两个方法中的内容 需要将其转换为列表才能使用
下面示例展现如何获取字典中的内容
dict1={"张三":70,"李四":80,"赵云":77}
dict1["曹操"]=90
dict1["刘备"]=88
listkey=list(dict1.keys())
listvalue=list(dict1.values())
for i in range(len(listkey)):
print("%s的成绩为:%5d" % (listkey[i],listvalue[i]))
下面通过另外一种形式获取字典内容
通过for…in 循环遍历dict1.items()可以不转化列表获取字典内容
dict1={"张三":70,"李四":80,"赵云":77}
dict1["曹操"]=90
dict1["刘备"]=88
listitems=dict1.items()
for name,score in listitems:
print("%s的成绩为:%3d" % (name,score))
函数
创建函数的语法:
def 函数名称(参数1,参数2):
程序块
return 返回值
下面是不固定参数函数
def 函数名称(*参数):
def func1(* args):
.....
Python 通过元组的方式将所有参数存放在args 元组中,通过操作元组即可获得所有参数
def calsum(*params):
total=0
for param in params:
total+=param
return total
print("不固定参数函数示例:")
print(calsum(1,2))
print(calsum(1,2,3,4))
系统内置函数
函数 | 功能 | 示例 | 结果 |
abs(x) | 返回x的绝对值 | abs(-5) | 5 |
chr(x) | 返回整数x代表字符 | char(65) | A |
float(x) | 将x转换为浮点数 | float(“56”) | 56.0 |
hex(x) | 将x转换为16进制数 | hex(34) | 0x22 |
int(x) | 将x转换为整数 | int(34.21) | 34 |
len(x) | 返回参数x的元素个数 | len([1,2,3,4]) | 4 |
max | 返回列表中的最大值 | max(123,12,3) | 123 |
min | 返回列表中的最小值 | min(1,23) | 1 |
oct(x) | 将x转换为八进制数 | oct(21) | 0o25 |
ord(x) | 返回x的Unicode编码 | ord(“啊”) | 21834 |
pow | 返回x的y次方 | pow(2,3) | 8 |
round(x) | 返回x的四舍六如 | round(35.9) | 36 |
str(x) | 将x转换为字符串 | ||
sorted(x) | 从小到大排序 | ||
sum(x) | 计算列表元素的总和 | sum([1,3,5,7]) | 16 |
type(x) | 返回对象的数据类型 | type(“啊啊”) | String |
导入包