Python个人常见语法问题

这篇具有很好参考价值的文章主要介绍了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对象的字典的区别:特别是在访问其中内容的时候文章来源地址https://www.toymoban.com/news/detail-424642.html

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"]

到了这里,关于Python个人常见语法问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3+ ts ts语法在script写不知道为啥一直报错

    在vue3页面中写ts语法 发现识别不了 一直报错 1.出现这种问题的话,首先查看自己写的有没有问题,没有问题的话 2.再查看 script里边有没有写 lang=\\\"ts\\\" 解析 setup: 是vue3在单文件组件 (SFC) 中使用 composition api 的编译时语法糖。 lang=\\\"ts\\\" :表示你的代码将是 TypeScript 语法

    2024年02月11日
    浏览(35)
  • [个人笔记] SQL笔记-While语法

    MySQL while语法 MSSQL while语法-案例1 MSSQL while语法-案例2 无

    2024年02月16日
    浏览(39)
  • 本机使用python操作hdfs搭建及常见问题

    一、虚拟机安装CentOS7并配置共享文件夹 二、CentOS 7 上hadoop伪分布式搭建全流程完整教程 三、本机使用python操作hdfs搭建及常见问题 四、mapreduce搭建 五、mapper-reducer编程搭建 六、hive数据仓库安装 1.打开虚拟机系统,打开hadoop 确保网页可以打开 2.修改本机hosts文件 ifconfig 查看

    2024年01月18日
    浏览(49)
  • python经典百题之前N项和

    我们需要编写一个函数,根据输入的n的奇偶性分别计算不同的求和。对于偶数n,计算1/2+1/4+…+1/n;对于奇数n,计算1/1+1/3+…+1/n。 解题思路 使用循环计算不同情况下的求和。 代码实现 优缺点 优点: 简单、直接,易于理解和实现。 缺点: 时间复杂度较高,为O(n)。 解题思路

    2024年02月07日
    浏览(42)
  • 微信小程序更新最新版本后之前打开的用户还是老版本的问题

    小程序从启动到最终被销毁,会经历很多不同的状态,小程序在不同状态下会有不同的表现。 从用户认知的角度看,广义的小程序启动可以分为两种情况,一种是冷启动,一种是热启动。 冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加

    2024年02月06日
    浏览(50)
  • Markdown语法常见数学符号

    💝 如果大家认为本文章不错,可以 收藏加关注 哦!!!本文将持续更新~~~ 💝 希望大家在学习的道路上勇往直前💝💝 以下是Markdown常见数学符号表示方法以及应用场景: + :+ 用于表示加法操作。 - :- 用于表示减法操作。 * :* 用于表示乘法操作。 / :/ 用于表示除法操

    2024年02月14日
    浏览(43)
  • HBuilderx 坑 之前没问题 改了几行代码 小程序上传报分包大小超过限制

      目录 Error: 分包大小超过限制,main package source size 4199KB exceed max limit 2MB [20221008 16:08:06][wx432abdb518bdc1eb] 本文重点来了!! 如题:小程序,只改了几行代码,上传报主包超过限制,简直有毒,估计很多人都遇到过此类情况,官方解释的优化方案也不是很好用,但是今天我试了一

    2024年02月16日
    浏览(54)
  • 正则表达式的常见语法

           目录 一、基本的正则表达式语法 1.1 字符类 1.2 单个字符的特殊表示 1.3 量词表示  1.4 边界匹配 1.5 分组与捕获  二 、java中的使用   在Java中使用正则表达式进行字符串匹配可以说是一个很重要的技能,尤其对于需要进行文本处理或者字符替换的程序来说,更是必

    2024年04月28日
    浏览(51)
  • 个人开发中常见单词拼错错误纠正

    单词太多啦, 我这里只列表我个人见得比较多的, 我没见过就不列举了. 有错误或想补充的可以提交在原仓库提交Pull Request. 😁 GitHub地址: https://github.com/rd2coding/Awesome-Tech-Words Gitee地址: https://gitee.com/xiaozhengN/Awesome-Tech-Words 规范书写 不合适拼写举例 备注 RESTful Restful、RestFul RES

    2024年02月13日
    浏览(75)
  • Shell语法揭秘:深入探讨常见Linux Shell之间的语法转换

    博主简介 💡一个热爱分享高性能服务器后台开发知识的博主,目标是通过理论与代码实践的结合,让世界上看似难以掌握的技术变得易于理解与掌握。技能涵盖了多个领域,包括C/C++、Linux、Nginx、MySQL、Redis、fastdfs、kafka、Docker、TCP/IP、协程、DPDK等。 👉 🎖️ CSDN实力新星、

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包