转义字符——将一些字符转换成有特定含义的 (例如:换行\n)
print('a \nb')
--------运行结果---
a
b
\ \ 保证后面没有特殊的地方 \ = \ (并无其他意思,无转义意思) 因此\n 不等于 \n
print('a\\nb')
----------运行结果------
a\nb
转义单引号(双引号)
print('tom is a \'good\' man')
print("tom is a 'good' man")
---------运行结果---------
tom is a 'good' man
tom is a 'good' man
前提:字符串内有很多换行,用\n写在一行不好阅读
print('good\nnice\nhandsome')
print('''
good
nice
handsome
''')
------------运行结果------
good
nice
handsome
good
nice
handsome
\t——制表符 (输出效果相当于一个缩进符)
print('tom is a\tgood')
print('\\\t\\')
--------运行结果--------
tom is a good
\ \
如果字符串中有好多字符需要转义,需要加入好多的\ 为了简化,pyhton允许用r表示内部的字符串不转义
print(r'\\\t\\')
print(r'C:\Users\Trover\Desktop\project\annotation')
--------运行结果-------
\\\t\\
C:\Users\Trover\Desktop\project\annotatio
字符串的功能:
1.eval(str)
功能:将字符串str当成有效的表达式来求值并返回结果 效果相当于int()强制类型转换成整形,但比int强制类型转换功能要强大(可以返回里面表达式的结果)
num1=eval('123')
print(num1)
print(type(num1))
print(eval('1+23'))
print(eval('12-3'))
print(eval('-123'))
--------运行结果------
123
24
9
-123
2.len
功能:返回字符串的长度(字符个数) 也等于字符串结尾下标+1
print(len('tom is a good man'))
-------运行结果----
17
3.str.lower()
功能:将字符串中的大写字母转换成小写字母(并没有实际意义上的改变 仅是输出的时候改变,原字符串未改变)
str='TOM is a good good good man'
print(str.lower())
print('str = %s' %(str))
-----------运行结果------
tom is a good good good man
str = TOM is a good good good man
4.str.upper()
功能:将字符串中的小写字母转换为大写字母(并没有实际意义上的改变 仅是输出的时候改变,原字符串未改变)
str='TOM is a good good good man'
print(str.upper())
-------运行结果--------
TOM IS A GOOD GOOD GOOD MAN
5.str.swapcase()
功能:转换字符串中大写字母为小写字母 小写字母为大写字母
6.str.capitalize()
功能:首字母大小 其他小写
7.str.title()
功能:每个单词的首字母大写
8.str.center(width,fillchar)
功能:返回一个指定宽度的字符串(居中), 默认时空格填充
str='TOM is a good good good man'
print(str.center(40,'*'))
------运行结果--------
******TOM is a good good good man*******
9.str.ljust(width[,fillchar])
功能:返回一个指定宽度的左对齐字符串 fillchar为填充字符 默认空格填充
str='TOM is a good good good man'
print(str.ljust(40,'%'))
---------运行结果------
TOM is a good good good man%%%%%%%%%%%%%
10.str.rjust(width[,fillchar])
功能:返回一个指定宽度的右对齐字符串 fillchar为填充字符 默认空格填充
str='TOM is a good good good man'
print(str.rjust(40,'%'))
---------运行结果-------
%%%%%%%%%%%%%TOM is a good good good man
11.str.zfill(width)
功能:返回一个长度为width的字符串,原字符串右对齐,前面补0
str='TOM is a good good good man'
print(str.zfill(40))
---------运行结果------
0000000000000TOM is a good good good man
12.count(str[,start][,end])
功能:返回字符串中str出现的次数,可以指定一个范围,默认从头到尾
str='TOM is a good good good man'
print(str.count('good'))
-------------运行结果---------
3
13.str.find(str,[.start][.end])
功能:检测str字符串是否包含在字符串中,并返回第一次出现的首字母位置(开始下标) 默认从左向右,没有返回-1
str='TOM is a good good good man'
print(str.find('good'))
print(str.find('hello'))
#不是说从哪找起,下标就从0开始,下标始终都是从第一个字符串下找起
print(str.find('good',9,len(str)))
------------运行结果---------
9
-1
9
14.str.rfind(str[,start][,end])
print(str.rfind('good'))
print(str.rfind('hello'))
#不是说从哪找起,下标就从0开始,下标始终都是从第一个字符串下找起
print(str.rfind('good',9,len(str)))
-----------运行结果--------
19
-1
19
15.index(str[,start=0][,end=len(str)])
功能:跟find方法一样,但是,只不过如果str不存在,会报一个异常
16.#rindex类似与rfind
17.str.lstrip()
功能:截掉左侧字符串指定的字符(默认为空格)
str1='************* I am find thank you'
print(str1.lstrip())
print(str1.lstrip('*'))
------运行结果---------
*************I am find thank you
I am find thank you
18.str.rstrip()
功能:截掉右侧字符串指定的字符(默认为空格)
str1='I am find thank you ***********'
print(str1.rstrip())
print(str1.rstrip('*'))
---------运行结果---------
I am find thank you***********
I am find thank you
19.strip()
功能:同时截取左右两侧数据
str2='***********I am find thank you**********'
print(str2)
print(str2.strip('*'))
--------运行结果--------
***********I am find thank you**********
I am find thank you
循环语句while
格式: while 表达式:
语句
逻辑:当程序执行到while语句时, 首先计算'表达式'的值,如果'表达式'的值为假,
结束整个while语句。如果'表达式'的值为真,则执行'语句'执行完'语句',再去计算'
表达式'的值(回到循环中)
死循环:表达式永远为真的循环
while循环里面使用else语句:
格式:
while 表达式1:
语句1
else:
语句2
逻辑:在条件语句为False时,,执行else中的语句2
循环语句for
格式:
for 变量名 in 集合:
语句
逻辑:按顺序取集合中的每个元素,赋值给变量,再去执行语句,如此循环往复,直到取完集合中的元素截止
注:range([start=0,]end[,step=1])函数: 列表生成器
功能:生成列表(必须在for循环中使用) start默认为0,步长默认为1
注:无论是while循环语句还是for循环语句,表达式中的判断语句的临界条件都是一个常量
代码实现:
for x in range(10):
print(x) #生成的是下标数 如果想要访问(遍历)给定列表中的元素 —— 列表名[下标]
-------运行结果------
0
1
2
3
4
5
6
7
8
9
#同时遍历下标和元素(将要遍历的列表放到enumerate方法下)
for index,m in enumerate([1,2,3,4,5]): #index,m 下标,元素
print(index,m)
------运行结果------
0 1
1 2
2 3
3 4
4 5
循环中断的语句:break语句和continue语句
break语句:(跳出本层)
作用:跳出for和while循环
注意:若只有一层循环,直接跳出循环,若有多层嵌套式循环,跳出离他最近的那一层循环,可以继续执行它上一层的循环
num=1
while num<10:
print(num)
num+=1
if num==3:
break #注意,不是跳出if(因为if是判断语句而不是循环),而是跳出循环
#循环语句可以有else语句,break导致循环截止,不会执行else下面的语句
else:
print('yes or no')
------------运行结果----------
1
2
continue语句:(跳出当前)
作用:跳过当前循环中的剩余语句,然后继续下一次循环
注意:只跳过距离最近的循环,
for i in range(10):
print(i)
if i==3: #当i=3时,跳过从此往下的此循环中的语句,从i+1开始执行循环中
continue
print('*')
print('&')
--------运行结果--------
0
*
&
1
*
&
2
*
&
3
4
*
&
5
*
&
6
*
&
7
*
&
8
*
&
9
*
&
num=0
while num<5:
print(num)
if num==3:
num+=1 #区别与for循环,需要手动跳过
continue
print('*')
print('&')
num+=1
----------运行结果-------
0
*
&
1
*
&
2
*
&
3
4
*
&
1.字符串比较大小
从第一个单词开始比较,谁的ASCII值大谁大 如第一个相等,向后比较,比较下一个字符的ASCII值
2.list列表
创建列表:
格式:列表名=[列表选项1,列表选项2......]
功能实现:
1.创建列表
list1=[]
print(list1)
----------运行结果-------
[]
2.创建带有元素的列表
list2=[12,13,14,15,16]
print(list2)
---------运行结果------
[12,13,14,15,16]'
拓展:运用循环的方式,求列表中的元素之和?
代码实现:
list2=[12,13,14,15,16]
index=0
sum=0
while index<5:
sum+=list2[index]
index+=1
print('sum=%d' %(sum))
---------运行结果------
sum=70
注:列表中的元素可以是不同数据类型的
list3=[1,'2',True]
print(list3)
----------运行结果--------
1,'2',True
3.列表的访问——不要越界
格式:列表名[下标名]
list4=[1,2,3,4,5]
print(list4[2])
----------运行结果--------
3
4.列表的替换——区别与字符串,元组(后两者不能改变)
list4=[1,2,3,4,5]
list4[2]=10
print(list4)
---------运行结果--------
1,2,10,4,5
#列表的操作
5.列表的连接:
list5=[1,2,3]
list6=[4,5,6]
print(list5+list6)
---------运行结果---------
[1,2,3,4,5,6]
6.列表的重复
list7=[1,2,3]
print(list7 *3)
-----------运行结果--------
[1,2,3,1,2,3,1,2,3]
7.判断元素是否存在于列表中
list9=[1,2,3,4,5]
print(3 in list9)
-------------运行结果-------
True
8.列表的截取——[a,b] 能取到a,不能取到b
list10=[1,2,3,4,5,6,7,8]
print(list10[2:6])
print(list10[3:])
print(list10[:5])
-----------运行结果---------
[3,4,5,6]
[4,5,6,7,8]
[1,2,3,4,5]
9.二维列表
list11=[[1,2,3],[4,5,6],[7,8,9]]
print(list11[1][1])
--------运行结果------
5
#列表的方法
10.append在列表的末尾添加新的元素 区别于字符串(不可以改变)
list12=[1,2,3,4,5,6]
list12.append(0)
list12.append([7,8,9])
print(list12)
---------运行结果--------
[1, 2, 3, 4, 5, 6, 0, [7, 8, 9]]
11.在末尾一次性追加另一个列表中的多个值 与前面的append有明显区别
list13=[1,2,3,4]
list13.extend([7,8,9])
print(list13)
------运行结果------
[1, 2, 3, 4, 7, 8, 9]
12.在下标出添加一个元素,不覆盖原数据,原数据向后顺延
list14=[1,2,3,4]
list14.insert(1,5)
print(list14)
-------运行结果-----
[1, 5, 2, 3, 4]
13.pop([[x=list[-1]]) list[-1]默认表示列表的最后一个下标
移除列表中指定下标的元素(默认移除最后一个元素),并返回删除的数据(元素)
list15=[1,2,3,4,5]
list15.pop(2)
print(list15)
print(list15.pop(2))
print(list15)
--------运行结果-------
[1, 2, 4, 5]
4
[1, 2, 5]
14.remove()按照元素内容移除(第一个匹配的结果,默认从左向右匹配)
list16=[1,2,3,4,5]
list16.remove(2)
print(list16)
---------运行结果-----
[1, 3, 4, 5]
15.clear()默认清除列表中所有的元素
list17=[1,2,3,4,5]
list17.clear()
print(list17)
-------运行结果-----
[]
16.从列表中找出某个值的第一个匹配的的索引值
list18=[1,2,3,4,5,3,4,5]
index18=list18.index(3)
print(index18)
#圈定一个范围
index19=list18.index(3,3,8)
print(index19)
-----运行结果---------
2
5
17.列表中元素个数
list20=[1,2,3,4,5]
print(len(list20))
-------运行结果-----
5
18.获取列表中的最大值,最小值
list21=[1,2,3,4,5]
print(max(list21))
print(min(list21))
--------运行结果------
5
1
19.查看元素在列表中出现的次数
list22=[1,2,3,4,5,3,4,5,3,6,3]
print(list22.count(3))
-------运行结果-------
4
20.(***) 拓展:将list22列表中的所有等于3的元素删除
num=0
all=list22.count(3)
while num< all:
list22.remove(3)
num+=1
print(list22)
---------运行结果--------
[1, 2, 4, 5, 4, 5, 6]
注:由于list22.count(3)在循环中是个变量,即每删除一次,也随之减1,由于num也在增加,不符合循环的次数(要求4次,实际才运行2次),
同时不符合循环表达式的格式(while a
1.布尔值:一个布尔值只有True.False两种值
b1=True
b2=False
print(b1,b2)
---------运行结果------
True False
注:空值:是python里面一个特殊的值 用None表示,None不能理解为0
因为0是有意义的,而None是一个特殊值。(正确区别其他语言)
n=None
print(n)
---------运行结果--------
None
2.turtle绘制图形(绘制之前需要导入turtle库)
简单的绘图工具(一切以箭头为参照点,参照箭头的前后左右)
提供一个小海龟,可以把它理解成一个机器人,只能听懂有限的命令
绘图窗口的原点(0,0)在正中间,默认海龟方向是右侧
运动命令
forward(d) 向前移动d长度(箭头的指向为前)
backword(d ) 向后移动d长度(箭头的反方向为后)
right(d) 向右转动多少度(箭头的右侧)
left(d) 向左转动多少度(箭头的左侧)
goto(x,y) 移动到固定点,坐标位(x,y)
speed(speed) 笔划绘制的速度[0-10] 包含0和10
笔划控制命令
up() 笔划抬起,在移动时,不会绘图
down() 笔划落下 ,在移动时,会绘图
setheading(d) 改变海龟的朝向
pensize(d) 笔划的宽度
pencolor(colorstr) 笔划的颜色
reset() 恢复所有设置,重置turtle状态(三角的位置,状态恢复到未设置之前)
clear() 清空窗口,不会重置turtle(三角的位置,状态不能恢复到未设置之前)
circle(r,steps=e) 绘制一个圆,r为半径,e为次数(可以不写) e—表示几次画出这个圆
begin_fill() 开始填充
fillcolor(colorstr) 填充相应颜色
end_fill() 结束填充
其他命令
done() 保持程序继续执行,不结束(画板一直显示)
undo() 撤销上一次操作
hideturtle() 隐藏海龟
showturtle() 显示海龟
screensize(x,y) 设置画板的大小
代码实现:
import turtle
# turtle.speed(3) 海龟移动的速度
turtle.forward(40)
turtle.right(40)
turtle.forward(40)
turtle.goto(-100,-200)
turtle.up()
turtle.goto(-100,300)
turtle.down()
turtle.pensize(10)
turtle.pencolor('red')
turtle.goto(100,100)
turtle.right(30)
turtle.forward(40)
# turtle.reset()
# turtle.clear()
# turtle.forward(20)
turtle.begin_fill()
turtle.fillcolor('green')
turtle.circle(50,steps=6)
turtle.end_fill()
turtle.forward(100)
turtle.circle(30)
turtle.done()