python自学笔记(未完待续...)

第六天

转义字符——将一些字符转换成有特定含义的 (例如:换行\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()

你可能感兴趣的:(python)