python学习笔记1 变量,字符串,列表,元组
一.变量【弱类型】
变量名 = 值
变量名表示一个标签,为变量赋值的过程本质上就是用在其所表示的标签和值之间建立绑定关系。
二.打印字符串【只有字符串,没有字符的概念】
“xxx” //可以直接打印出里面的
‘xxx’ // 需要加反斜杠才能打印出单引号
‘’‘xxx’’’ //不仅可以打印出里面的单引号,还可以自然换行
三.print输出
print(r’…/n’) // r 直接输出,转义字符不再管用
print("…",sep=’’,end=’’)
sep – 用来间隔多个对象,默认值是一个空格。
end – 用来设定以什么结尾。默认值是换行符 \n。
print(’…%d…%s…’%(a,b)) //格式化输出
四.字符串操作
1.字符串定义
name=‘Xiao ming’ //不能单纯定义,第一次赋初值,第一次使用就是定义
2.首字母大写
name=name.title() //此name非彼name,name相当于标签,现在贴到了name.title()
所有字母大写
name=name.supper()
所有字母转小写
name=name.lower()
3.合并拼接字符串
first_name=‘xiao’
last_name=‘ming’
直接用+号拼接
name= first_name+’ '+last_name //中间加了一个空格
4.制表符换行符添加空白
name=‘xiao/tming/n’
5.删除收尾空白字符
name=name.lstrip //首端
name=name.rstrip //尾端
name=name.strip //两端
五.整数[integer]
1.定义
整数类型用int表示
age=21
2.基本运算
加:1+1
减:1-1
乘:1*1
除:1/1 //如果运算出是浮点数,就会保存成浮点数
取余:1%1
幂运算:9**2 //9的2次方
9**(1/2)//9开2次方
9**(-1/2)//1/9开2次方
-9**(1/2)//开出来是复数
运算优先级
和小学数学优先级运算知识相同,可以使用小括号改变
除0异常
```python
```python
try:
result=1/0
except ZeroDivisionError as error
print(error)
else:
print(result)
六.浮点数
用float表示
1.定义:float1=180.5
float1=0.5
float1=.5
浮点数在计算机内部用近似值表示,小数点位数不定
基本运算和整形相同
七.数值型和字符串的转换
number=999
强制类型转化
‘abc’+str(number)//数字转化为字符串,与字符运算
int(‘123’) //把字符型123转化为整形
八.注释
1.单行注释:# 注释行
2.多行注释:
‘’’
多行注释
‘’’
九.列表
1.基本用法
用方括号表示列表[list]
students=[‘ximing’,‘xiaozhu’,‘xiaosha’,‘xiaohong’]
通过下标访问数组
students[0]
下标也可以是负数,左后一个是-1 #方便拿出最后一个元素
students[-4]
数组中的单个元素可像一个变量一样使用
students[0].title
下标范围【-元素个数,元素个数-1】,下标不可越界,会溢出异常
error:list index out of range
测试数组长度(元素个数):n= len(students)
列表中元素类型可以不同 :a=[123,‘abc’,12.3,True]
2.列表的改增删操作
修改:student[0]=‘zhangsan’
追加:student.append(‘lisi’)
插入:student.insert(0,‘wangwu’) #插到了零号元素之前【改成使用符合python风格的注释方法,哈哈哈哈哈哈】
清空:students=[]
删除:del student[1]
del a #del也可用于删除别的变量,本质是解除变量名与对象的关系
从首位弹出: a=students.pop(0) # 返回首元素并删除
b=students.pop() # 返回尾元素并删除
删除匹配元素:students.remove(‘zhangsan’) #删除第一个匹配的元素
3.列表的重组操做
就地排序
students=[‘ximing’,‘zhangsan’,‘lisi’,‘xiaohong’]
students.sort() #升序 排序完数组已经发生了改变
students.sort(reverse=Ture) #降序
有序副本
Sstudents=sorted(students) #升序 返回值是排序好的
Sstudents=sorted(students,reverse=Ture) #降序
逆序
students.reverse()
4.范围列表
range(起始, 终止, 步长) 生成一个起始到终止步长等于步长值的列表
[起始, 终止) 步长不写的话,默认是1
与C语言对比:for (int i = 0; i < 5; ++i) { … }
for i in range(0,5): …
range(0,5)等于range(5)等于[0,1,2,3,4]
5.简单运算: max() min() sun()
例如:chengji=[55,66,77,88]
max(chengji) #求出最大值为88
6.遍历列表
基于索引【下标】的循环遍历
for i in range(len(students)):
print(students[i],end=’ ')
判断首尾元素输出 ‘[]’
for i in range(len(students)):
print(("[’" if i == 0 else “’”) +students[i],end= "’, " if i < len(students) - 1 else “’]\n”)
基于迭代的遍历循环
for student in range(len(students)):
print(students,end=’ ')
同时获取下标和元素
for i,student in enumerate(students):
print(("[’" if i == 0 else “’”) +students,end= "’, " if i < len(students) - 1 else “’]\n”)
7.切片
用[起始索引:终止索引]的形式表示一个从起始索引开始到终止索引之前的元素范围。
students[1:3] #表示第2,第3个元素
students[3:1] #空集
students[-3:-1] #表示倒数第一,倒数第2个元素
students[1: ] #表示第1个元素到最后
students[:4] #表示第1个元素到到第4个
students[1:5][0:2] #表示第2个到第5个元素中的第0个到第2个元素。切片中切片
students[1:5:2] #表示第2到第5个元素片,步长是2
8.复制列表
十.元组
用圆括号表示元组
用法等于不能修改的列表
1.定义
students1=(55,66,77)
2.基于索引的访问
students1[1]
3.元组内单个元素不能改变,可以对元组整体改变【把元组的变量名指向了另一个元组,引用新的元组】
students1 = (students1[0] * 2,students1[1] * 2)
元组的元素不能改,但元素的元素未必不能改
students2= ([88], [99])
students2[0][0] *= 2 #对元组中元素的元素进行修改
students2[1][0] *= 2
十一.二维容器
1.定义二维列表
matrix=[[11,12,13,14],[21,22,23,24],[31,32,33,34]]
或者:
rows= 3
cols = 4
matrix = []
for row in range(rows):
r = []
for col in range(cols):
r.append((row + 1) * 10 + col + 1)
matrix.append®
更牛逼写法:
matrix = [[(row + 1) * 10 + col + 1 for col in range(cols)]
for row in range(rows) ]