python基本语法整理

python刚刚入门,总结一下上网课 (小甲鱼) 时学到的python基本语法。
有一点c的基础,主要总结和c不太一样的地方。

+++++++++++++++++
声明📢 :
文章是我个人的笔记,写在这里和大家分享。里面的内容都是看小甲鱼python网课时自己总结的一些知识点。
有些内容,可能是我自己百度了之后,看了别人的文章之后的笔记。具体的网址都在文章中标记出来了。

++++++++++++++++
感谢支持。如果有什么建议,或者是文章内容有什么错误/问题,麻烦指出来,会及时改进的

+++++++++++++++++
语法入门结束之后,开始刷面试题了。如果大佬们有什么,关于语法入门之后怎么练习的建议,麻烦评论区指点一下。谢谢!

文章里面可能有很多英文,主要是因为一长串中/英文读起来容易找不到重点,将关键字用英语标出来, 对我个人读起来有些帮助

文章有些地方,不是顺序来写的。如果见到一些不认识的函数或者用法,可以检索一下文章,找到他们的定义

注意项

  • 不需要semicolon ;
  • indentation缩进 代替{ }
  • 变量不需要declare type,可以直接赋值。

print

  • 不需要格式符号%d,%lf
  • “” 或者’ '都可以用来标注字符串
  • 每次print执行完了之后,都会默认换行。可以更改这一设定👇:
print("hello world", end='')
print('hola')
#end=规定每次打印结束以什么来结尾
  • 一个print函数打印多个字符串
print(a, b, c)
#默认字符串用空格隔开
print("hello" * 3)
#打印“”里面的内容3次
结果:hellohellohello
print("hello" + "world")
结果:helloworld

打印特殊符号

转义符号

当要打印字符串里面的 ', " ,\n, \t, 或者位于句末的\时

print("lower\\")
结果:lower\

加上r
这个语句会自动给字符串中所有的 \ (不包括句末的\) 转义

string = r'\n\t'
print(string)
\n\t

打印多行的字符串

使用三个“ 或者 ‘

print('''hello
world''')
#打印结果会自动换行
hello
world

if else

不要忘记冒号和indentation

if a == 1:
	print(' a == 1')
elif a == 2:
	print(' a == 2')
else:
	pass #什么都不写的时候用

三元操作

string = a if a < b else b

或者

if a < b:
	string = a
else:
	string = b

else其他用法

  1. 和while, for一起用

写在else里面的code,只在循环全部结束之后才会执行。也就是,如果中间break, 则不执行。

for i in list1:
	if i == 6:
		break
	print(i)
else:
	print('There is no 6 in the list')

如果 list1 = range(0, 10, 4)

0
4
8
There is no 6 in the list

如果list1 = range(0, 10, 3)

0
3
  1. 同理,else可以和try语句一起用。如果try语句中没有出现exception,则执行else里面的内容
try:
	raise OSError
except OSError:
	print('error')
else:
	print('success')

while

不支持do while

a = 1
while a < 2:
	print(a)
	a += 1
	#⚠️python不支持++,--
1

for

主要适用于list或者tuple
⚠️这里的i和j不是一个counter,而是这个list里面的一个元素element

for i in list1:
    for j in i:
        print(j)

运算符

逻辑运算符

&& and
|| or
! not

算数运算符

/ 为数学意义上的除法,整数之间相除可以得到小数
// 为floor除法,即使operands是小数,结果依然为整数
** 幂

  • 比左侧的单目运算符高,比右侧的低
-3 ** 2 == -9
3 ** -2 == 0.11111

比较符

支持 3<4<5,相当于 3<4 and 4<5

类Class

命名规则:ClassName

类包含一系列的变量(属性attribute)和函数(方法)
避免变量与函数重名,否则变量会覆盖函数。

class Car():#如果在定义的时候,把其他的类当作参数放进来,那么可以继承这个类的所有变量或者函数
	#变量
	name = 'carro'
	color = 'red'
	
	#函数
	def calculate_speed(self, distance, time):
		speed = distance / time
		print('%s is travelling at %f m/s' % (self.name, speed))
		#⚠️ 除了在定义变量的部分,使用变量的话,都需要明确是哪一个对象(e.g. self.name而不是name)

类理解为一个模版,对象object(或者实例)则是这个模版刻出来的一个物品。类在定义的时候,是类。定义结束,是类对象。

我们可以创建一个对象:

car1 = Car()
print(car1.name)
print(car1.calculate_speed(30, 10))
carro
3.0

解释一下self:
当通过实例对象调用函数的时候,会把实例当作参数传入到函数里面。这是python 的绑定机制,self就是用来接收这个对象的
(个人理解,如果有错误,麻烦指出来,谢谢! )

继承
使用继承的方法,在前面有写过。

如果子类在定义的过程中,定义了和父类同名的变量/函数,会覆盖父类,但是并不会影响父类。
如果,想要保留父类同名的变量/函数,可以使用super

super(). 函数名()

init的定义,见魔法方法

class Parent:
	def __init__(self):
		print("I'm the parent")
class Child(Parent):
	def __init__(self):
		super().__init__() #在重新定义的时候,保留一下父类的内容
		print("I'm the child")
parent = Parent()

print('----分界线----')
child = Child()
I'm the parent
----分界线----
I'm the parent
I'm the child

组合
在定义一个类的时候,创建另外一个类的object

class Female:
	def __init__(self, input):
		self.number = input
class Male(Female):
	pass

class Class:
	def __init__(self, inputF, inputM):
		self.female = Female(inputF)
		self.male = Male(inputM)
	def statement(self):
		print("We have %d female students & %d male students" % (self.female.number, self.male.number))

class1 = Class(25, 24)
class1.statement()
We have 25 female students & 24 male students

类vs类对象vs实例对象
对类对象进行操作,会对这个类的所有objects作出操作。如果,对类的一个object进行操作,则只对这个object生效。

(原理是,这个object自己生成了一个变量,覆盖了类里面定义的那个变量。从此之后,再更改类对象也不会影响这个object,因为已经被覆盖了)

一切皆对象

一开始看网课不是很明白,搜到了一个其他楼主的文章明白了一点。

下面总结一下我个人读完这个文章之后的理解。原文:(链接:https://blog.csdn.net/hpu120623/article/details/90745739)⬅️ 文章里面有具体的例子和流程图,推荐读!

所有所谓的数据类型(序列,字典,int,str)这些都是type这个类的对象。
那么具体的变量 (e.g. list1, dict1, 3, ‘hello’) 是相对应的数据类型的对象。
最后,type本身就是type这个类的对象。

所以,都是对象。。。

如果想要有更深刻的理解,建议可以自己平时多试试打印某个东西的type是什么。极大的可能性返回的都是<class ‘something’>.

数据类型

区分int & float

有无小数点

科学记数法

默认为float

a 
  • 173
    点赞
  • 1147
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值