1  逗号不是运算符,只是个普通的分隔符
>>> x = 3, 5
>>> x
(3, 5)
>>> x == 3, 5
(False, 5)
>>> 1, 2, 3
(1, 2, 3)
>>> 3 in [1, 2, 3], 5
(True, 5)

2  ++和--也不是运算符,虽然有时候这样用也行
>>> x = 3
>>> x+++5
8
>>> x++
SyntaxError: invalid syntax
>>> ++5
5
>>> ++++++++5
5
>>> --5
5

# 下面这个代码是上面那个代码的等价形式

>>> -(-5)
5
>>> ---------5
-5

3  lambda表达式中变量的作用域
>>> d = dict()
# 这里有个坑
>>> for i in range(5):
       d[i] = lambda :i**2
 
>>> d[2]()
16
>>> d[3]()
16
# 这样看的更清楚一些
# lambda表达式中i的值是调用时决定的
>>> i = 10
>>> d[0]()
100
# 写成下面这样子就没问题了
>>> d = dict()
>>> for i in range(5):
       d[i] = lambda x=i:x**2
 
>>> d[2]()
4
>>> d[3]()
9

4  某个作用域中只要有某变量的赋值语句,它就是个局部变量
>>> x = 10
>>> def demo():
       print(x)
# 这样是可以的,访问全局变量
>>> demo()
10
>>> def demo():
       print(x)
       x = 3
       print(x)
# 这样是错的,x是局部变量,在x=3之前不存在x,print()失败
>>> demo()
Traceback (most recent call last):
  File "<pyshell#156>", line 1, in <module>
    demo()
  File "<pyshell#155>", line 2, in demo
    print(x)
UnboundLocalError: local variable 'x' referenced before assignment

5  纠结的元组到底可变不可变
>>> x = (1, 2, 3)
# 元组中的元素不可修改
>>> x[0] = 4
Traceback (most recent call last):
  File "<pyshell#161>", line 1, in <module>
    x[0] = 4
TypeError: 'tuple' object does not support item assignment
>>> x = ([1, 2], 3)
# 不能修改元组中的元素值
>>> x[0] = [3]
Traceback (most recent call last):
  File "<pyshell#163>", line 1, in <module>
    x[0] = [3]
TypeError: 'tuple' object does not support item assignment
>>> x
([1, 2], 3)
>>> x[0] = x[0] + [3]
Traceback (most recent call last):
  File "<pyshell#165>", line 1, in <module>
    x[0] = x[0] + [3]
TypeError: 'tuple' object does not support item assignment
>>> x
([1, 2], 3)
# 这里有个坑,虽然显示操作失败了,但实际上成功了
>>> x[0] += [3]
Traceback (most recent call last):
  File "<pyshell#167>", line 1, in <module>
    x[0] += [3]
TypeError: 'tuple' object does not support item assignment
>>> x
([1, 2, 3], 3)
>>> x[0].append(4)
>>> x
([1, 2, 3, 4], 3)
# y和x[0]指向同一个列表,通过其中一个可以影响另一个
>>> y = x[0]
>>> y += [5]
>>> x
([1, 2, 3, 4, 5], 3)
# 执行完下面的语句,y和x[0]不再是同一个对象
>>> y = y + [6]
>>> x
([1, 2, 3, 4, 5], 3)
>>> y
[1, 2, 3, 4, 5, 6]

6  字符串转换成数字的几种方式

>>> eval('9.9')
9.9
>>> eval('09.9')
9.9
>>> float('9.9')
9.9
>>> float('09.9')
9.9
>>> int('9')
9
>>> int('09')
9

# 坑来了,使用eval()转换整数时前面不能有0

>>> eval('09')
Traceback (most recent call last):
  File "<pyshell#187>", line 1, in <module>
    eval('09')
  File "<string>", line 1
    09
     ^
SyntaxError: invalid token

Python编程中一定要注意的那些“坑”(一)相关推荐

  1. Python编程中一定要注意的那些“坑”(二)

    之前发过一些坑,请参考Python编程中一定要注意的那些"坑"(一)和Python函数默认值参数的2个坑 今天说说列表的内存自动伸缩带来的坑. 假设有个列表如下,现在下删除其中的所 ...

  2. python random模块中的指令_10分钟让你掌握python编程中random模块功能使用,非常详细...

    原标题:10分钟让你掌握python编程中random模块功能使用,非常详细 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可 ...

  3. python编程中常用的12种基础知识总结

    python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  4. python编程中的小问题汇总

    前言 本文记录了我在python编程中遇到的各种小问题,持续更新. 1. x = x + 1 VS x += 1 辨析下面这两段代码: >>> x = y = [1, 2, 3, 4 ...

  5. python的知识点运用_程序猿在Python编程中不得不使用的十二种基础知识

    Python编程中常用的12种基础知识,其中肯定有你不会的! 人生苦短,我用Python 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串. 人生苦短,我用 ...

  6. python编程中的运算_Python编程中的四大运算法则

    接触过编程的人都知道,编程中的数学知识无处不在,通过数学建模能够解决我们实际生活中的很多问题.当然这并不是说必须要成为一名数学大神才能学编程,但掌握数学知识在编程中的表达方法却是很有必要的,今天南京小 ...

  7. if __name__ == __main__:什么意思_秒懂Python编程中的if __name__ == 'main' 的作用和原理...

    来源:菜鸟分析 链接: https://zhuanlan.zhihu.com/p/34112508 一天偶然发现知乎上有篇关于对python编程中的if __name__ == 'main'的理解陈述 ...

  8. python编程基础知识点总结_【转载】Python编程中常用的12种基础知识总结

    Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  9. Python 编程中常用的12种基础知识总结

    Python 编程中常用的12 种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出 ...

最新文章

  1. js中计算中文长度方法
  2. c语言ascw,Asc/AscB/AscW和Chr/ChrB/ChrW函数之间的区别
  3. 【从零学习openCV】opecv操作像素
  4. scrapy python3.8_银狐DevNet-网络运维Python初篇(四)netmiko抓取华为网络配置并存入本地...
  5. Java基础知识强化83:System类之gc()方法(垃圾回收)以及和finalize()区别
  6. 2、内核的配置和移植
  7. where and when is Angular scope initialized
  8. 用python绘制一条直线_python绘制直线的方法
  9. 趣头条宣布6月30日停止自媒体创作平台服务和维护
  10. pom.xml 添加 JUnit依赖
  11. Android通话记录CallLog简单摘要
  12. java翻译数字串并打印_如何使用Java翻译字符串?
  13. 第三章 垃圾回收的一些概念
  14. php java转换为字符串格式_php array 转json及java 转换 json数据格式操作示例
  15. Elpscrk:功能强大的智能字典生成器
  16. php jwplayer mp4,jwplayer6 和 php播放视频
  17. 我在京东这一年—张亮
  18. 一文读懂哈希算法SHA256
  19. Win10安装Apache和PHP
  20. Bili狂神说Vue笔记

热门文章

  1. aliyun maven 添加jar_Maven介绍及安装
  2. nacos 启动_【Nacos源码之配置管理 一】阅读源码第一步,本地启动Nacos
  3. 东北大学c语言编程尸体,东北大学c语言编程试题及其答案
  4. slot多作用域 vue_vue插槽
  5. .db怎么复制到java里_如何在MongoDB中将集合从一个数据库复制到另一个数据库
  6. mysql 出现 quot_mysql 出现 quot;the table is fullquot;的问题 - tmuffamd - ITeye博客
  7. php开发实例大全pdf百度云盘_互联网大厂 主要使用哪些开发语言
  8. AGP与PCI-E的区别和PCI-E接口与PCI接口的区别
  9. java 混淆 js_Vue javascript和css混淆
  10. matlab fair,matlab练习程序(加权最小二乘)