Python个人常见语法问题

之前一直是写Java的,来到新公司后,后端语言包括python。

这里对python语法做一些记录,防止以后发生类似的问题

1,python是弱类型的语言,比如给同一个变量赋值不同的类型,是不会报错的:

a = 10
a = "hello"

   注意,在项目中不要给同一个变量,前后赋值的类型不一样。

2,python没有使用大括号来区分语句块,而是使用严格的缩进:

   比如像下面,第一个sum的计算是在bool_a 为Ture的时候,才会进行的,否则sum最终的值为0。而第二个sum的计算即使bool_a 为False也会计算,最终结果为30。

a = 10
b = 20
sum = 0
bool_a = False
if bool_a :
   sum = a+b

   
   
a = 10
b = 20
sum = 0
bool_a = False
if bool_a :
sum = a+b

  个人觉得python严格使用缩进来控制语句块,是一个非常糟糕的设计。

3,python语句结束的时候,不会使用分号

4,python使用英语类似的自然语言的表达,没有使用括号来封装bool表达式:
 

if True and True:
   print("hello")

5,python的函数,类似c++的函数指针,可以将函数名称当作另外一个函数的参数,来使用:

  像下面,我们可以在要对两个函数求和的时候,调用func_pointer_call(10,20,sum)。

  可能在另外一个地方求差值的时候,调用func_pointer_call(10,20,sub)

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

def sub(a,b):
     return a-b


def func_pointer_call(a,b,func)
     return func(a,b)

6,python的参数列表,是一个非常危险的地方,特别是默认参数,容易发生不可感知的bug:
   比如像下面default_param_func()定义了一个默认参数,这允许我们在调用的时候,最后一个参数不用传递,比如test1()和test2()

 如果像下面这样调用test1() 返回的将是-90,而test2()返回的是110。

def default_param_func(a,name,is_user=False):
    print("current name is :" + name)
    if is_user:
        return a+100
    return a-100


def test1():
    return  default_param_func(10,Ture)


def test2():
    return  default_param_func(10,"laibincs",Ture)

  我们在使用test1()的时候,是希望is_user = True,但是事与愿违,而且编译器和运行时都不会报错。

因此在python中定义方法的时候,尽量不要使用默认参数,一定要显示的传递参数

default_is_user = False

def default_param_func(a,name,is_user):
    print("current name is :" + name)
    if is_user:
        return a+100
    return a-100


def test1():
    return  default_param_func(10,None,default_is_user )


def test2():
    return  default_param_func(10,"laibincs",Ture)

7,注意python对象的字典的区别:特别是在访问其中内容的时候

class Person:
  def __init__(self,name,age):
     self.name = name
     self.age = age



def test3():
  p = Person("laibincs",60)
  name = p.name 
  age = p.age

def test4():
   p = {
       "name" : "laibincs",
       "age" : 60
       }
   name =p["name"]
   age = p["age"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Python的路线可以根据个人的学习目标和时间安排来制定,以下是一个常见Python学习路线: 1. 入门阶段: - 学习Python的基本语法和数据类型,了解变量、运算符、条件语句、循环语句等基本概念。 - 掌握Python的基本输入输出,学会使用print函数和input函数。 - 学习如何定义和调用函数,了解函数的参数传递和返回值。 - 熟悉Python的列表、元组、字典和集合等数据结构。 2. 进阶阶段: - 学习面向对象编程(OOP)的基本概念,包括类、对象、继承、多态等。 - 掌握异常处理机制,学会使用try-except语句处理异常。 - 学习文件操作,包括读取和写入文件。 - 熟悉Python的模块和包的概念,了解如何导入和使用第三方库。 3. 实践阶段: - 参与实际项目开发,通过实践提升编程能力。 - 学习使用Python进行数据分析、机器学习或者Web开发等领域的应用。 - 阅读优秀的Python代码,学习其他开发者的编程风格和技巧。 4. 深入阶段: - 学习Python的高级特性,如生成器、装饰器、上下文管理器等。 - 掌握Python的并发编程和网络编程,了解多线程、多进程、协程等概念。 - 学习Python的内存管理和性能优化技巧。 在学习过程中,可以结合在线教程、书籍、视频教程和实践项目等资源进行学习。同时,参与Python社区的讨论和交流,与其他开发者分享经验和学习心得也是非常有益的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值