【python】python基础教程 java转python快速入门
2023-12-29 23:55:12
前言: 很多同学估计和博主一样,照葫芦画瓢 写点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快捷键
- 调用方法时 在方法名使用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的主要区别在于:
- 面向对象中 方法(包括构造方法),第一个参数必须为self , self相当于java中的this ,指实例
- 构造方法写法不同 python固定为
def __init__(self):
- 创建对象 python不需要new关键字
- 继承写法的差异 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!