013Python基础知识(补充)

Python基础知识



1、逻辑行和物理行



你所看到的代码中的行即为 物理行 ,而python将一条语言当作一个 逻辑行

python假设一个物理行对应一个逻辑行。

逻辑行的例子是形如print(‘Hello World‘)的单条语句,如果它独占一行(就象你在编辑器看到的),那么它也是一个物理行。

python本身鼓励每条语句占一行 ,这样可读性更强。

如果你希望在一个物理行包含多个逻辑行,则必须使用分号 ; 显式一个逻辑行/语句的结束. 例,

i = 5
print(i)

与下面的等效

 i = 5;
 print(i);

这样写的效果也一样

 i = 5; print(i);

甚至可以这样写

 i = 5; print(i)

虽然有多种写法,但我强烈建议你一个物理行只包含一个逻辑行。不过当逻辑行太长,也可以把它写成多个物理行。

这些办法都是为了尽可能避免分号,使得代码的可读性更强。事实上我从不使用甚至都没在python程序中看到过分号

下面是一个将逻辑行扩展为多个物理行的例子,它被称做 显式行合并(explicit line joining)

s = 'This is a string.  This continues the string.'
 print(s)

相应的输出为:

 This is a string. This continues the string.

与之类似的,

 print (i)

相当于

 print(i)

另外某些情况下会导致 隐式行合并(implicit line joining) ,比如逻辑行使用了大中小括号,此时无需反斜杠。

在后面我们会使用列表编写程序,届时你会看到这种用法。

2、缩进



在python中空白字符是非常重要的,更具体的说是 每行开头的空白字符十分重要 。这被称作缩进。

逻辑行开头的空白字符(空格和制表符tab)用于确定逻辑行的缩进级别,依此按顺序将语句分组。

也就是说同组的语句必须拥有相同的缩进级别,而这些语句组被称作。下一章我们会看到块的重要性。

现在你需要牢记的是 错误的缩进会导致程序出错,举个例子:

 i = 5
  print('Value is ', i) #错误! 注意本行的开头多了一个空格.
 print('I repeat, the value is ', i)

运行上面代码会得到下面的错误信息:

 File "whitespace.py", line 4
 print('Value is ', i) # Error! Notice a single space at the start of the line
    ^
 IndentationError: unexpected indent

你可能注意到了程序的第2行的开头多了一个空格。错误信息告诉我们程序的语法是非法的,即程序的编写有问题。

这也意味着你不能随便开始新的语句块(除了主块, 我们一直在主块内编写)。

如何缩进

不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。我 强烈建议 你在每个缩进层次使用 四个空格 或 单个制表符 。

选择这两种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即 只 使用这一种风格。

关于空格和制表符的选择,可以参考 知乎上的讨论

3、单语句块



我们已经看到每个语句块都根据它的缩进级别将彼此区分开。不过有一个例外。

如果某语句块只包含单条语句,你可以把它放到同一行,例如条件语句或循环语句。

下面的例子清楚的说明了这点:

>>> flag = True
>>> if flag: print 'Yes'
...
Yes

注意上面的单条语句被放置到同一行而没有作为单独的块。

虽然你利用这点可以让程序变的更短,但我强烈建议你避免使用它(除了错误检测),主要原因是使用适当的缩进可以更方便的添加额外的语句。

4、编码方式



Python 2 里,.py文件默认的编码方式为ASCII。而Python 3 的源码的默认编码方式为UTF‐8。

如果想使用一种不同的编码方式来保存 Python 代码,我们可以在每个文件的第一行(或者hash-bang下)放置编码声明(encoding declaration):

# -*- coding: <encoding name> -*-

了解更多信息,可以参阅 PEP 263: 指定Python源码的编码方式

原文地址:https://www.cnblogs.com/FirstReed/p/11731525.html

时间: 2024-08-24 20:03:11

013Python基础知识(补充)的相关文章

python基础知识补充

set 集合 {} 无序 集合天然去重 增 : s.add s.update 迭代添加 删 : s.pop( ) 随机删除 返回删除值 s.clear( ) 清空 获取到的是 set( ) del s 删除整个集合 s.remove( ) 删除指定元素(通过元素) 改 : 先删再增 查 : for i in set: print(i) 其他操作 : 交集 : s & s1 s.intersection(s1) 并集 : s | s1 差集 :(前面集合减后面的集合 输出前面没有的) s1 - s

Python基础知识补充(重要)-作用域、特殊语法

Python作用域 python代码内部块如if语句内声明变量,在if代码段后在调用此变量并未报如“undefinded name"此类错误,例子如下: if 1 == 1: name = 'Jason' print(name) ##result Jason 如果在java和c#中,会抛出异常,而在python和javascript中均无报错,这正是因为python和javascript中无块级作用域. 在有块级作用域的语言中,比如java/c#,代码中的name只在当前作用域下生效. 在没有块

基础知识补充-3.7

1.二叉树 2.random.uniform(a,b) 生成一个[a,b]之间的小数. 3.sorted()与sort()函数区别 list.sort(func=None,key=None, reverse=True or False) 当 reverse= True 反向排序,False 则正向排序 list.sort() 执行完后,改变了原来的list,而list.sorted() 保留原来的list,并生成一个新的list. 4.print(str,end= ‘’) #输出不空格.不换行

基础知识补充-3.13

1.Pyinstallers库:将.py源代码转换为无需源代码的可执行文件. pyinstall -F<文件名.py> 将py文件转换为可执行文件 常用参数: 例: pyinstaller -i a.ico -F b.py      给定一个 Python 源程序文件 a.py,图标文件为 a.ico,将其打包为在 Windows 平台上带有上述图标的单一可执行文件 2.dict.items() dict = {'老大':'15岁', '老二':'14岁', '老三':'2岁', '老四':'

[Java并发编程之美]第2章 并发编程的其他基础知识 补充知识

synchronized与volatile关键字 一. synchronized synchronized是Java语法中的一个内置锁的实现.synchronized关键字解决了代码块或者方法上的同步问题,同一时间,只有一个线程能够通过并执行.保证线程安全:内存可见性和原子性提供了并发场景的一个共享资源访问的解决方案. 当我们说synchronized锁住的是一个JVM对象时,真正发挥作用的是对象头上所指向的monitor对象(监视器机制:Java锁的底层实现). synchronized有两种

Python入门基础(第5天):基本数据知识补充和深浅拷贝

1.基本类型知识补充 (1)join( )  使用方法 # 将列表转换成字符串,每个元素之间用_拼接(可自定拼接字符) lst="-".join(["何东洋","he","5225"]) print(lst) # 字符串转换成列表用:split("分隔符") # 列表转换成字符串用:join("[内容]") ss="小何**晓东**假如" #字符串 print(ss.

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录:        一.Python常用扩展包        二.Numpy科学计算包        三.Pandas数据分析包        四.Matplotlib绘图包 前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.K

蓝牙基础知识

蓝牙基础知识: 1.频段:2.4~2.485GHz; 2.最大输出功率: 最大功率容量 射程范围 (mW) (dBm) (m) 1类 100mW 20        ~100 2类 2.5mW 4  ~10 <——多数蓝牙应用是电池供电的2类设备 3类 1mW   0     ~1 对比:移动电话功率——>UMTS和W-CDMA输出为250mW,GSM1800/1900为1000mW,GSM850/900为2000mW. 3.跳频技术 (Frequency-Hopping Spread Spe

c语言基础知识整理(二)

C语言的基础知识 对C语言的基础认识: 1.C语言编写的程序称为源程序,又称为编译单位. 2.C语言书写格式是自由的,每行可以写多个语句,可以写多行. 3.一个C语言程序有且只有一个main函数,是程序运行的起点. 4.每个C语言程序写完后,都是先编译,后链接,最后运行.(.c---à.obj---à.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行. (程序编辑-程序编译-程序连接-程序运行) 标识符: 1.标识符: 合法的要求是由字母,数字,下划线组成.有其它