Python学习笔记(一)

首先是 选用的书籍,用的是有鼎鼎大名的 《PYTHON 编程 从入门到实践》,作者是【美】埃里克马瑟斯,翻译是袁国忠老师,第二版,封面为黄色,蟒蛇飞机图案,这里找了个店家截图,大伙看一下就好。

参考书目
毕竟我直博的同学是这么跟我讲的,学python,不看书也行,很简单的,有手就行(笑),并且此处应当有某公司给我付广告费。

装环境什么的就不多聊了,我用的不是书中推荐的编辑器,用的是pycharm,这个文本编辑器大家也就图一乐就行,我上大学的时候,用的还是python自带的那个呢,别说输入提示了,debug还得看控制台消息呢。

知识点1:

print("hello python world")
message="ni hao"
print(message)
message="ni shi ge hao ren"
print(message)

python中 变量定义不必指出变量类型,并且由此衍生出,可以理解为第一次等号赋值时定义该变量,后面每一次等号赋值修改该变量

知识点2:
字符串中 双引号和单引号的使用问题:
首先,用双引号和单引号表示字符串本身都无任何问题,并且在双引号表示的字符串中嵌套单引号也无任何问题,反之亦可,但是双引号中嵌套双引号,单引号中嵌套单引号,需要使用转义字符,否则报错。

message="请问你有男朋友吗?"
print(message)
message='请问你有"男朋友"吗'
print(message)
message="请问你有'男朋友'吗"
print(message)
message="请问你有\"男朋友\"吗"
print(message)
message='请问你有\'男朋友\'吗'
print(message)

知识点3:

name="ada lovelace"
print(name.title())
print(name.lower())
print(name.upper())
print(name.lower())

title 函数 将每个单词的首个字符串大写
upper函数 将每个单词的所有字母大写
lower函数 将每个单词的所有字母小写

知识点4:

#在字符串表示中插入其他变量
name1="Ada"
name2="lovelace"
print(f"hello! {name1} {name2}.")

在要组合的字符串前使用f,并且用 { }来表示括号内的是变量名,f表示format,是一种特殊的字符串格式。
在python3的早期版本中,通常采用这样的格式来达到同样的效果:

print("hello, {},{}".format(name1,name2))

知识点5:
删除字符串中多余的空格(字符串结尾)

name="    dawear joihoi\t\t\t    \n"
print(name.rstrip())
print(name)

实测该功能不仅仅限于空格,还包括制表符\t 换行\n

name="    dawear joihoi\t\t\t   \n "
print(name.rstrip())
print(name.lstrip());
print(name)
print(name.strip())

lstrip则删除开头,strip则是双管齐下,要注意的是,使用该函数只是返回一个新的值,而并不会修改数据本身。

知识点6:
乘方运算,python不同于其他语言,乘方运算用**表示,而非大部分语言的特定函数。

知识点7:
两个数相除,结果总是浮点数,即使两个数都是整数且能够相互整除.

知识点8:
下划线表示大数时,可以采用下划线表示,但是输出时并不会输出对应的下划线。
且下划线的位置不特定(但不可以使用两个相邻的下划线)

number=2100_0_000
print(number)

输出结果为21000000

知识点9:
同时给多个变量赋值,x,y,z = 0,1,2

知识点10:
Python语言中没有特定的常量类型,但是Python程序员通常会使用全部大写的变量名来表示一个常量。
为了防止有小白不明白常量的定义,常量指的是在其存续的生命周期内这个数据的值应当保持不变。

知识点11:
Python注释使用#号即可。


鉴于这里就到第三章了,这一页记录的东西实在太少,所以我决定把第三章的内容也写在这个东西下面


知识点12:
列表,列表其实就是数组,不过Python的列表就如同他的变量一样不必声明类型。
最简单的定义方式如下:

Examples=['123','bili','wuke','wo shi chao wei lan mao']
print(Examples)
Examples=[123,'bili','wuke','wo shi chao wei lan mao']
print(Examples)

要区分二者中123的不同,第一个是字符串,第二个是整型数。

知识点13:
Python提供了十分令人震惊的访问数组的途径,你可以使用【数组名】(-1)的方式来访问倒数第一个元素,同理,-2表示倒数第二个元素,-3表示倒数第三个元素,下面是测试:

Examples=[123,'bili','wuke','wo shi chao wei lan mao']
print(Examples[-2])


同样可以使用format格式调用数组中的元素,来达到我们的目的:

Examples=[123,'bili','wuke','wo shi chao wei lan mao']
message=f"{Examples[2]} said: '{Examples[0]}!,{Examples[-1]}!'"
message2="{} said: '{}!,{}!'".format(Examples[2],Examples[0],Examples[-1])
print(message)
print(message2)

感觉还蛮复杂

知识点14:
向列表中插入元素,可以用append,或者用insert,并且可以通过创建空列表的方式,逐步插入元素。

Examples=[123,'bili','wuke','wo shi chao wei lan mao']
Examples.append("giao")
Examples.insert(1,"Ultraman Tiga")
print(Examples)

不过都是C++学过的老东西了,大伙应该都会吧。

知识点15:
从列表中删除元素:共有两种方法,第一种是del,第二种是pop
其用法如下:

Examples=[123,'bili','wuke','wo shi chao wei lan mao']
Examples.append("giao")
Examples.insert(1,"Ultraman Tiga")
print(Examples)
del Examples[-1]
print(Examples)
Examples.pop()
print(Examples)
Examples.pop(2)
print(Examples)

关键在于del并不会返回值,pop则会返回弹出的对象值,并且pop可以缺省要删除的数组下标索引(缺省时表示最后一个)。
其中pop的功能示范为:

Examples=[123,'bili','wuke','wo shi chao wei lan mao']
Examples.append("giao")
Examples.insert(1,"Ultraman Tiga")
wtf=Examples.pop(2)
print(Examples)
print(wtf)


此外还有一种更加偷懒的办法,使用remove函数,remove用于只知道删除的数据内容而不知道具体下标的情况(当然了,我们都知道在C++和java内可以通过简单的for循环查找来实现这一目的)示例如下:

Examples=[123,'bili','wuke','wo shi chao wei lan mao']
Examples.append("giao")
Examples.insert(1,"Ultraman Tiga")
Examples.remove("giao")
print(Examples)

输出列表内很显然没有这个giao了

知识点16:
数组排序:

Examples=["123",'bili','wuke','wo shi chao wei lan mao']
Examples.sort()
print(Examples)
Examples.sort(reverse=True)
print(Examples)

sort可以实现数组排序,这显然很简单,逆序只需要提供reverse=True的参数即可,务必记住True中T要大写。

知识点17:
这本教材还是很细节的,在介绍sort的时候明确指出是方法,而sorted则是函数,这一点将在后面的章节会有详细的说明。
下面是sorted的用法:

Examples=["123",'bili','wuke','wo shi chao wei lan mao']
print(sorted(Examples,reverse=True))
print(Examples)

输出结果如下:

sorted函数同样可以使用reverse=True来达到逆置的效果,其和之前的sort函数最大的区别在于,sorted只会返回一个排序完成后的数组,但不会改变数组的原值。

知识点18:
reverse 实现数组的翻转,没什么好说的。
Examples.reverse()即可

知识点19:
len函数,使用len(Examples)即可返回数组内元素的个数。
并且要注意的是,len函数和其他语言一样,计数从1开始。


下面是第四章


知识点20:
for循环,示例代码如下:

Examples=["123",'bili','wuke','wo shi chao wei lan mao']
for example in Examples:
    print(f"hello! {example.title()}")

关键在于记住 python 中用缩进来代替 “{ }“ 并且for循环后需要一个冒号来表示for循环的开始。

知识点21:
range函数

Examples=["123",'bili','wuke','wo shi chao wei lan mao']
for example in Examples:
    print(f"hello! {example.title()}")
for i in range(1,7):
    print(i,end='' );
print("\n------------------------------------------------")

没什么好讲的,关键在于range函数确定的范围不是一个闭集,左侧闭,右侧开。
也就是输出不包括7,只会输出1到6。
同时range可以只指定一个参数,那么他输出的范围将是从0开始,例如range(6),那么实际范围为0,1,2,3,4,5。

知识点22:
range函数和for循环的嵌套使用

numbers=list(range(100))
for i in numbers:
    print(f"{i}! woshisanbing")
numbers=list(range(2,11,3)) #最后一个数字表示步长
for p in numbers:
    print(p)
#我们可以这样来控制for循环的起始位置和结束位置
numbers=list(range(100))
for i in range(int(len(numbers)/2),100,2):
    print(i)

知识点23:
range函数的进一步应用:
要求输出1到11的平方数。

numbers=[]
for i in range(1,12):
    numbers.insert(0,i**2) #这里修改为 append(并将0去掉) 将输出完全一致的结果
print(numbers)

numbers2=[ i**2 for i in range(1,12)]
print(numbers2)

因此可以用 【数组名】=[【变量操作】for 【变量名】in range (A,B) ]的方式快速创建数组

知识点24:
数组切片,说的好听,其实就是数组的连续截取。

numbers=[]
for i in range(1,12):
    numbers.insert(0,i**2)
print(numbers)
print(numbers[0:3])
print(numbers[:2])
print(numbers[-3:])

差不多得了。。唯一要注意的就是这个数组的连续截取,同样是左闭右开。
因为切片后仍然是一个数组,所以同样可以丢到for循环里,不过无法控制步长,有需求的还是用range来控制吧。

知识点25:
数组的两种复制方式:
第一种是确确实实创造了第二个数组,第二种则是创建了另一个指向第一个数组的数组名,两个数组名本质上指向的是一块内存。
分别如下:

numbers = []
for i in range(1, 12):
    numbers.insert(0, i ** 2)
numbers2 = numbers[:]
numbers2.append(123)
print(numbers)
print(numbers2)
numbers2 = numbers  
#这种写法在java 和C++ 中显然是不允许的,
#因为numbers2本身也是一个数组,而不是指针。
#即使是指针,也会产生内存泄露的问题
#但是这毕竟是万能且无敌的python
print(numbers)
print(numbers2)

输出如下:(此处不需要考虑内存溢出的问题)

知识点26:
元组
numbers = (3, 5) print(numbers[0])
元组说的好听,其实就是静态数组,值不可修改
但是要注意的是:如果元组只有一个元素,需要用逗号标注,因为元组本质上是用逗号标识的,圆括号只是起到美观作用

知识点27:
元组,尽管给修改元组内元素的值是违法的,但是改变元组名指向的对象是合法的,如下:

numbers = (3, 5)
print(numbers[0])

numbers2=(2,9)
numbers=numbers2
print(numbers)

第五章转学习笔记(二)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值