【python】python基础教程 java转python快速入门

发布时间:2023年12月29日

前言: 很多同学估计和博主一样,照葫芦画瓢 写点python是没问题的,理论上只要懂一门语言 学其它语言的基本语法都是很容易的,难点在于针对什么场景 用什么框架, 如何针对并发做设计等。
虽说我们画瓢都能画,但是基础的入门语法 还是要熟练的,博主是java开发 ,所以本文有时会以java的语言来阐述。

最基础语法

python中没有大括号,用冒号, 且缩进来表示层级 4个空格为1级

java用// 表示行注释,python用#表示,
java /** **/表示段落注释 , python用 “”" “”" (全英文双引号)表示

python是弱类型,不需要手动声明变量类型

python中的main方法:

if __name__ == '__main__':

关键字区别:

	python: self --> java: this
	python None --> java: null
	python super().method() --> java super.method (python中不算关键字)

java代码:

/**
*测试
**/
public void test(){
// do something
}

python代码:

"""
测试
"""
def test():
	if 1 == 1 :
		# xxx
	else:
		# xxx
    # do something

pycharm快捷键

  1. 调用方法时 在方法名使用ctrl + Q 可以看到方法的返回值类型
    在这里插入图片描述
    在这里插入图片描述

面对对象基础

具体看注释

# 类的专有方法:
# __init__ : 构造函数,在生成对象时调用
# __del__ : 析构函数,释放对象时使用
# __repr__ : 打印,转换
# __setitem__ : 按照索引赋值
# __getitem__: 按照索引获取值
# __len__: 获得长度
# __cmp__: 比较运算
# __call__: 函数调用
# __add__: 加运算
# __sub__: 减运算
# __mul__: 乘运算
# __truediv__: 除运算
# __mod__: 求余运算
# __pow__: 乘方

class Parent:

    def method(self):
        print("父类...")


# 继承
class Child(Parent):
 
    # (构造方法)
    def __init__(self):
        print("子类初始化")


    # 重写
    def method(self):
  
        print("子类...")

    def superMethod(self):
        # 调用父类
        super().method()


# 用来模拟多态
class Grandson(Parent):

    def method(self):
        print("孙子类...")


# 多态体现
def func(obj):
    obj.method()


if __name__ == '__main__':
    # 创建对象
    obj = Child()
    obj.method()
    obj.superMethod()

	# 多态体现
    obj1 = Grandson()
    func(obj1)


与java的主要区别在于:

  1. 面向对象中 方法(包括构造方法),第一个参数必须为self , self相当于java中的this ,指实例
  2. 构造方法写法不同 python固定为
def __init__(self):
  1. 创建对象 python不需要new关键字
  2. 继承写法的差异 python中例如:class Grandson(Parent): 表示java中的Grandson extends Parent

变量作用域基础

python中有:

全局变量
类变量
实例变量
局部变量

全局变量是定义在所有class之外的,除了定义位置不同,其它和java的全局变量一样
类变量是定义在class里面 ,该class的所有def(方法)外面的, 类似于java的静态变量
实例变量 比较特殊 可以理解为能以在一个class里面的所有def方法内部定义 且可以在整个实例中传输的全局变量
(即只在该实例中传输的全局变量 定义位置在def方法里面)
局部变量:方法里面定义的 和java的局部变量一样

# 类的专有方法:
# __init__ : 构造函数,在生成对象时调用
# __del__ : 析构函数,释放对象时使用
# __repr__ : 打印,转换
# __setitem__ : 按照索引赋值
# __getitem__: 按照索引获取值
# __len__: 获得长度
# __cmp__: 比较运算
# __call__: 函数调用
# __add__: 加运算
# __sub__: 减运算
# __mul__: 乘运算
# __truediv__: 除运算
# __mod__: 求余运算
# __pow__: 乘方

class Parent:

    def method(self):
        print("父类...")


# 全局变量(class外)
b = 333


# 继承
class Child(Parent):
    # 类变量 (class内)
    a = 0

    # (构造方法)
    def __init__(self):
        # 局部变量
        c = 666
        print(f"子类初始化{Child.a}")
        Child.a = 1

    # 重写
    def method(self):
        # 实例变量
        self.a = 2
        print(b)
        print(f"子类...:{Child.a}")

    def superMethod(self):
        # 调用父类
        super().method()
        print(f"实例变量:..{self.a}")


# 用来模拟多态
class Grandson(Parent):

    def method(self):
        print("孙子类...")


# 多态体现
def func(obj):
    obj.method()


if __name__ == '__main__':
    # 创建对象
    obj = Child()
    obj.method()
    obj.superMethod()

    # 多态体现
    obj1 = Grandson()
    func(obj1)

循环基础

LoopOuter .py文件

# 测试Loop.py导包
def get_test_data():
    arr = [1, 3, 5]

Loop.py文件

# 导包
from LoopOuter import get_test_data


def get_data():
    inner_arr = [1, 3, 5]
    return inner_arr


if __name__ == '__main__':

    # 有返回值
    res = get_data()
    print(res)
    for item in res:
        print(item)

    # 无返回值 返回None  (快捷键ctrl+Q查看返回值)
    res1 = get_test_data()
    if res1 is None:
        print("nothing")
    else:
        print(res1)

    # 遍历字符串
    my_string = "Hello"
    for each_char in my_string:
        print(each_char)

    # 遍历字典
    my_dict = {'a': 1, 'b': 2, 'c': 3}
    for key, value in my_dict.items():
        # f或F表示 f-strings(格式化字符串字面值),允许在字符串中包含变量和表达式的值
        # 类似的还有r  r或R开头的字符串会将反斜杠 \ 视为普通字符,而不是转义字符 在处理正则表达式、文件路径等场景中很有用。例如: r"C:\Users\xx
        print(f"Key: {key}, Value: {value}")

    dict_value = my_dict["c"]
    print(f"测试字典取值:{dict_value}")

    my_list = [1, 2, 3, 4, 5]
    # for i  遍历
    for index, item in enumerate(my_list):
        print(f"Index: {index}, Value: {item}")

    my_range_list = [5, 6, 7, 8]
    # for index range  左闭右开[0,2)
    for index in range(0, 2):
        print(my_range_list[index])

    arr = [1, 3, 5]
    # 弹出下标(该数字从arr中也没了)
    var = arr.pop(2)
    print(var)
    print(arr)

文章来源:https://blog.csdn.net/qq_36268103/article/details/135203917
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。