快速入门python,自学了一个月python,现在掌握了一些基础,分享一下,通俗易懂,看完对于零基础的小白很有好处。
一:了解定义,什么是python,python是面向对象的语言,和java一样,都是面向对象的,java亚父余胜军。python之父是谁我也不知道,不重要。
你需要知道列表,元组,字典,这三部分要掌握:
二:恭喜你,能认识列表,字典,元组,列表了。它们直接有区别的,我简单概况一下,列表,字典都是可以更改的,元组是不可以更改的。
这里我举例子说明列表是怎么更改的:
a=[1, 2, 3, 4]
a.append(5)
print(a)
a.remove(1)
print(a)
这里面有个常用的函数,range,不常用或者比较难的,我这里就不介绍了,主要是快速理清学习框架。
a = range(1, 101, 2)#从1到101,跳度为2
for i in a:
print(i, end=' ')
三:让我们来学习输入输出,在终端实现输入输入输出,需要用到input(),print()。
举例子说明:
str=input("请输入一个值")
print(str)
#请输入一个值 20
#20
在输入中,我遇到的就是input,但是输出还有一个,就是format(),print只能用于固定输出,如果我想输出不同的东西呢。
a=[1,4,3,2]
for i in a:
print(f'这个数是{i}')
#这个数是1
#这个数是4
#这个数是3
#这个数是2
你会发现输出的东西在改变,我们用到了for i in a: 这个的函数非常好用,就是用i在a里面遍历一遍,简单来说,a里面几个数据,遍历几次,然后遍历的值就是a里面的值。你还会发现,for和print并没有对齐,这是因为在print中,缩进就非常重要的。可以用tap,也可以空格四次。
四:数据类型,数据类型有这几个,int整形,float浮点型, string字符串,其中int,string用到的比较多,说一下区别,a = int (5),整数5,a = ’ 5’
a=int(5)
print(a)
print(type(a))#type函数用来检测数据类型的。
#5
#
a='5'
print(a)
print(type(a))
#5
#
其实我们不难发现整形和字符串类型就是有没有单引号这一个区别。
五:现在我们学习了列表,元组,字典,最简单的输入输出,数据类型,我们来写一个例子代码,看一下能不能看懂。
a=[1,4,3,2]
b=input('请输入')#这里可以输入一个数据,不可以输入几个数据,因为b是一个字符串,不是一个列表
a.append(b)
print(a)
#请输入2,3
#[1, 4, 3, 2, '2,3']
我们很容易发现,你输入的值添加的到了a这个列表中,其实像a,b这种我们叫做变量,用来存储变量,举例子的时候,可以将变量设置为a,b但是在实际开发的过程中,变量不能随便设置的,需要结合你在项目中实际的意义,不然别人看不懂,最后你也看不懂。
还有一个点,前面的数据没有引号,后面的数据加了引号,说明了什么,说明这个数据是字符串类型,我们如果不希望它是字符串类型应该怎么处理。
a=[1,4,3,2]
b=(input('请输入'))
a.append(int(b))
print(a)
#请输入5
#[1, 4, 3, 2, 5]
如果你输入两个数据,那么便会报错,这里学到的是字符串的强制转换。
六:我们来学习一下遍历和循环,for,while,别担心,循环看不懂,慢慢看,我感觉看我几个例子可以初步了解了,
while的用法:
while True:
print('这就是一个循环')
这段代码就是最简单的一个循环,他是无限循环,一直打印‘这就是一个循环’,怎么停止呢,那你只能在终端按下ctrl + c 这才能结束,因为你并没有设置结束循环的条件,True 记得首字母大写,而且别写错,我就经常写错,不过使用vscode可以看见高亮,这就可以帮助你发现直接的关键词写错没有。
a = range(1, 100)
i = 0
while i != 10:
for j in a:
print(f'数值为{j}')
if j == 10:
i = 10
break
if i == 10:
break
#数值为1
#数值为2
#数值为3
#数值为4
#数值为5
#数值为6
#数值为7
#数值为8
#数值为9
#数值为10
a是从1到99的数值,循环的条件是i !=10,很明显i=0,所以循环会执行,执行循环的时候,遇到了遍历,使用j遍历a,j等于10的时候,遍历结束,跳过for循环,在跳过循环的前面,对i进行了复制,当i==10的时候,循环结束了。break就可以用来跳过循环,当然你也可以写点东西。
七:python的基础部分还有一些库的使用,我觉得比较重要的是time,numpy,pandas,matplotlib,cv2.大家感兴趣可以取看看,我后续也会去写这方面的知识。time可以设置时间戳,获取当时的司机,numpy可以进行数据的运算,pandas可以进行数据分析,清洗,matplotlib这个可是好东西,简单好学,这个就是用来画图的。cv2,这个是opencv可以进行一些识别,深度学习,感兴趣的可以深入学习一下。
八:我们来学习函数咯,函数这个更别担心,函数就是传参调用。我调用一个函数,不能总是它自己在那执行吧,我总也要写点什么,和它交互一下啊,比如我想让它计算加减乘除,我不输入数字,它能自己算吗,未来倒是可能,心灵感应嘛,但是现在还是老老实实的传递参数。
举个简单的小例子:
def add(a, b):
return a+b
def sub(a, b):
return a-b
def mul(a, b):
return a*b
def div(a, b):
return a/b
a=int(input('请输入a的值'))
b=int(input('请输入b的值'))
print(add(a,b))
print(sub(a,b))
'''
请输入a的值7
请输入b的值5
2
请输入a的值4
请输入b的值5
9
'''
我们在输入的时候进行了强制整形转换,让输入的字符串变成了数字,不然在执行函数运行的时候,会变成字符串拼接,你可以试一下,输入4,5,变成了45.
函数是以def开头,然后设置函数名称,写函数的参数,执行调用这些参数进行运算,return是返回值,你也可以写一个变量来接收返回值,不写直接打印也是可以看见效果的,我之所以写笔记来分享,其实也就是找到自己的不足,也可以助人为乐。记住:多敲,看看现象,我不可能把每一种可能出现的错误罗列出来,你自己犯错,然后进步。这点很重要。
九:类,类的概念算是一个进阶了,其实没什么的,下面来解释一下类的概念,然后举例子说明,我们做冰棒是不是需要磨具,夏天,在家里的时候,在家里冻冰块,做出说明样的冰块就取决于什么样的磨具。而且你既然使用了磨具,很少就使用一次吧,一般夏天我们也会经常冻冰块,所以我们想吃冰块的时候,直接拿磨具冻上,而不是去超市买冰块。那么这个类就相当于冻冰块的磨具,想吃冰块了,我们就冻一个,冻出来的冰块就是类的实例化。实例化就是实际使用。磨具不能吃吧,冰块可以吃,下面我们喝点茶,慢慢看看这个类的例子:
class Computer: #建立一个名为Compuer的类(模具)
def __init__(self, a, b): #对磨具里面的值进行调整,传递参数,这就和函数一模一样。
self.a = a #按照这个格式,把值传递给self.a
self.b = b
def add(self):
return self.a + self.b
def sub(self):
return self.a - self.b
def mul(self):
return self.a * self.b
def div(self):
if self.b != 0: # 避免除以零的错误
return self.a / self.b
else:
return "Error: Division by zero"
def __str__(self):
return f"Computer object with a={self.a} and b={self.b}"
a = int(input('请输入a的值: '))
b = 10
number = Computer(a, b) #类的实例化,并且在实例化的时候进行了赋值操作
print(number) # 现在会打印出类似 "Computer object with a=用户输入的值 and b=10"
print(number.add()) # 调用add方法
print(number.sub()) # 调用sub方法
print(number.mul()) # 调用mul方法
print(number.div()) # 调用div方法,但请注意除以零的错误处理
初次见到类的时候,我有几点疑问,为什么有类这种东西,函数传递参数不就行了,搞一个大点的函数,然后为什么是def init(self, a, b): init左右两端都是双下划线,最大的疑问,这个self到底是什么玩意,为什么要写。
class Computer: #建立一个名为Compuer的类(模具)
def __init__(abc, a, b): #对磨具里面的值进行调整,传递参数,这就和函![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0d73030a1b224192bcfcae4f362e14b2.png#pic_center)
数一模一样。
abc.a = a #按照这个格式,把值传递给abc.a
abc.b = b
def add(abc):
return abc.a + abc.b
def sub(abc):
return abc.a - abc.b
def mul(abc):
return abc.a * abc.b
def div(abc):
if abc.b != 0: # 避免除以零的错误
return abc.a / abc.b
else:
return "Error: Division by zero"
def __str__(abc):
return f"Computer object with a={abc.a} and b={abc.b}"
a = int(input('请输入a的值: '))
b = 10
number = Computer(a, b) #类的实例化,并且在实例化的时候进行了赋值操作
print(number) # 现在会打印出类似 "Computer object with a=用户输入的值 and b=10"
print(number.add()) # 调用add方法
print(number.sub()) # 调用sub方法
print(number.mul()) # 调用mul方法
print(number.div()) # 调用div方法,但请注意除以零的错误处理
1.先说最后一个,self是对象的意思,写什么都行,不能不写,就是固定的一个参数,如果其他人看到你的代码,就会明白,这是个对象参数,还有,你不能一会写self,一会写abc,一会写adc,要写就必须写一个。同一个,就这一个特定意义。
2.为什么要有类这个东西,如果你写你几个函数,别人想调用,是不是要把这些函数全部复制过去,调用的时候还要一个一个函数分析,如果多个函数执行一个功能,那么有这个类就非常方便了,我们把这几个函数写道类里面,需要用的时候,在实例化对象后面点一个点,然后写函数的名称,那么这个实例就可以调用类里面的函数了,其实我们也有比较专业的叫法,叫类方法,就是方法,类里面的变量叫做属性。
3.init左右两端都是双下划。这个叫做初始化函数,用到的地方是非常多,如果你想给类进行传参,你就要在类的设置这个方法。参数是什么,会不会有人疑惑,简单解释一下,你传递的数据,如(10,15)这种叫做实参,函数里面的数据(a,b)这个叫做形参,形参接受你传递的数据,然后进行计算赋值,最后返回一个值,函数解释,形参里面的值也就没了。无论你传递什么值,形参的形式永远不会改变。
十:最后我想说一下类的继承:
我写了一个类,但是我想自己添加一个功能,我就不需要再去重写一个类了,我直接继承一个类,然后我自己添加一个就行,继承的叫做子类,被继承的叫做父类,儿子继承父亲的嘛,不能太离谱,父亲继承儿子。接下来看看实例:
class Computer: #建立一个名为Compuer的类(模具)
def __init__(abc, a, b): #对磨具里面的值进行调整,传递参数,这就和函数一模一样。
abc.a = a #按照这个格式,把值传递给abc.a
abc.b = b
def add(abc):
return abc.a + abc.b
def sub(abc):
return abc.a - abc.b
def mul(abc):
return abc.a * abc.b
class ComputerChild(Computer):
def mul(abc):
return abc.a * abc.b
a = int(input('请输入a的值: '))
b = 10
c=ComputerChild(a,b)
print(c.mul())#100
print(c.add())#20