分享记录一下最近学习python语言的一些心得

学习python的初衷是起源于近几年大模型AI的快速发展,大模型的底层都是依赖python深度学习框架来实现的。
我学习python采用的是方式课余时间在B站观看韩顺平老师的视频来学习的,其实B站上有很多老师讲python的视频,也看了一些,最后还是选择了韩顺平老师的课程,原因有一下几点

1.当时大学毕业那会就因为学习了韩顺平老师讲java的视频巩固了基础后来校招也成功签约了一家单位。
2、主要还是老师讲课的风格不仅诙谐幽默,而且讲的比较深入,适合零基础的小伙伴。尤其那几句口头语"老韩微微一笑",“认真听,仔细想” 特别深入人心。

好,废话不多说,下面主要整理一下python的一些基础语法,以及我从一个java开发到学习python,他们主要语法有哪些不同的地方。主要为了回顾一些知识点巩固记忆。

1、python变量不需要声明类型,且不强制需要用分号;进行结尾

Java中定义变量需要声明类型,

Integer age = 11;

Python中

age = 11
2、格式化

Java中常用的格式化常用语法

String.format("你好,我的名字叫%s","小y");

但是python中格式化,有三种方式,
(1):用%号

print("你好,我的名字叫%s" % ("小y"))

(2):用占位符及format函数

print("小y今年{}岁" .format(18))

(3):f-string的方式

name='小y'
print(f"你好,我的名字叫{name}")
3、布尔运算

Java中我们判断条件真假,通常有 if(a && b) 或者if (a || b ), 逻辑非 采用!
Python中用and, if( a and b) if( a or b ),逻辑非采用not

4、三元运算

Java中三元运算写法比如:

a>b?a:b;

Python中三元运算写法:

a if a>b else b

乍一看会感觉很奇怪而且不适应。

5、顺便复习一下原码、反码、补码的相关知识以及位移计算。这个二者区别并不大
6、Java中采用{}来标识程序结构体,Python中是用缩进符,同一个缩进表示的就是同一程序结构体
7、for循环

Java中的常用循环

for(int i=0;i<10;i++){

}

Python中的循环

for i in  range(10)

range(10) = range(0,10) 前面的值不写默认为0,采用前闭后包原则,即包括0不包括10的原则。然后continue和break用法则和java中用法一致。

8、函数

Java中的函数需要声明 公私有属性、返回值类型但是python中则直接定义函数名称

def  add(a,b):
	return a +b

而且python的函数支持多个返回值,我当时听了感觉简直离谱。举个例子

def get_max_and_min(num1, num2):
    max_val = num1 if num1 > num2 else num2
    min_val = num1 if num1 < num2 else num2
    return max_val, min_val
a b = get_max_and_min(10,12)

9、容器

Java中常用的数据结构:数组、list、set、map。用法就不一一列举。对标python中我们看常用的有哪些:

列表:用[]括起来的,实际就是数组

list1 = [100, 200, 300, 400, 500]

元组:用()括起来,我把它也当作数组来理解,只是说是不可变的数组

tuple_c = ('red', 'green', 'blue', 'yellow', 'white', 'black')

字符串

针对字符串的操作方法太多了,而且容易忘,比如切片。这个我觉得不重要,先看懂,等用的时候想不起来的时候查阅下文档就可以了。

集合set

用{}括起来,集合是无序的,不能保证存放的顺序和读取顺序一致

basket = {'apple', 'orange', 'pear', 'banana'}
print(f"set_a的内容是: {basket} 类型是: {type(basket)}")

字典Dict

用{}括起来,这个就是map了。

tel = {'jack': 4098, 'tom': 4139}

10、类定义

Java中定义类和继承语法稍有不一致。用括号括起来的代表基类也就是父类, __init__则代表构造函数

class child(Son):  
    def __init__(self):
         print("__init__ 执行了")

11、关于异常捕获

关于异常的用法稍有不同,举个例子

try:
    num1 = 10
    num2 = 0
    res = num1 / num2
except Exception as e:
    # 当我们得到异常后(捕获异常),程序员自己处理。。
    # 这里老师简单输出异常信息
    print(f"捕获到异常,异常是:{e}")
print("程序继续运行....")

12、文件处理

关于文件处理的诸多语法没什么可比性。

暂时就写这些吧。后面可能涉及到python的一些常用框架的分享,比如opencv、ocr功能等。