知识内容:

1.三元运算表达式

2.python代码编写规范

3.模块导入与使用

4.python文件名

5.python脚本的"__name__"属性

6.python之禅

一、三元运算表达式

 result = 值1 if 条件 else 值2

如果条件为真:result = 值1
如果条件为假:result = 值2

 result = 1 if 1 == 2 else 0
print(result) # result: 0

二、python代码编写规范

1、缩进

python程序是依靠代码块的缩进来体现代码之间的逻辑的。对于类定义、函数定义、选择结构、循环结构以及异常处理结构来说,行尾的冒号以及下一行的缩进表示一个代码块的开始,而缩进结束则表示一个代码块的结束,这些将在后面具体代码中可以体现出来

在python中一个缩进是四个空格,在pycharm中可以直接打一个tab键,编辑器会自动把一个tab键转换成四个空格,但是Linux中的vim就不行,在vim中表示python的缩进时,一定要使用四个空格!当然vim也可以自己去配置使一个tab键等同于四个空格!

示例:

 # __author__ = "wyb"
# date: 2018/3/8 # 以下代码功能: 找出a, b, c 3者中最大值
a, b, c = 1, 2, 3
if a > b:
if a > c:
print(a)
else:
print(c) else:
if b > c:
print(b)
else:
print(c)
print('OK')

2.注释

python中常见的注释有两种:

(1)以#开头对一行内容进行注释

(2)包含在一对三引号中('''  注释的内容 '''或"""  注释的内容 """)

注: 在pycharm注释的快捷键是ctrl+/,使用方法是先选中所需注释的内容,然后敲上ctrl+/

 # 被注释的内容

 '''
被注释的内容
多行
多行
''' """ 被注释的内容
多行
多行 """

3.使用必要的空格和空行增强代码的可读性

(1)运算符两侧、函数参数之间建议使用空格进行分割

(2)不同功能的代码块之间、不同的函数定义之间以及不同的类定义之间建议使用两个空行

4.异常处理

适当使用异常处理结构增强程序容错性和健壮性,但是不能过多地依赖异常处理结构,程序需要有适当的显性判断逻辑

5.测试

程序需有较强的测试性,测试与开发应该齐头并进,做完一个功能后程序员自己应该进行相应的单元测试

三、模块导入与使用

1.import 模块名 [ as 别名]

使用这种方式导入模块后如要使用模块中的对象可以使用以下方法:  模块名(别名).对象名\

2.from 模块名 import 对象名[ as 别名]

3. 导入一个模块中的所有对象: from 模块名 import * 

注:  不推荐使用

4.导入模块的顺序

(1) 导入python标准库中的模块(python环境自带模块),比如说os\sys\re\math

(2) 导入第三方库模块,比如说numpy\scrapy

(3) 导入自己定义或者开发的本地模块

示例:

 # __author__ = "wyb"
# date: 2018/3/9 import os # 导入python自带模块os
import sys # 导入python自带模块sys
import requests # 导入python第3方模块requests
# import package # 导入自己写的模块package from bs4 import BeautifulSoup # 从bs4包中导入BeautifulSoup模块
from math import sqrt # 从math模块中导入sqrt函数

四、python文件名

.py:Python源文件,由Python解释器负责解释执行

.pyw:Python源文件,常用于图形界面程序文件

.pyc:Python字节码文件,无法使用文本编辑器直接查看该类型文件内容,可用于隐藏Python源代码和提高运行速度。对于Python模块,第一次被导入时将被编译成字节码的形式,并在以后再次导入时优先使用“.pyc”文件,以提高模块的加载和运行速度。对于非模块文件,直接执行时并不生成“.pyc”文件,但可以使用py_compile模块的compile()函数进行编译以提高加载和运行速度。另外,Python还提供了compileall模块,其中包含compile_dir()、compile_file()和compile_path()等方法,用来支持批量Python源程序文件的编译

.pyo:优化的Python字节码文件,同样无法使用文本编辑器直接查看其内容。可以使用“python –O -m py_compile file.py”或“python –OO -m py_compile file.py”进行优化编译。Python 3.5不再支持.pyo文件

.pyd:一般是由其他语言编写并编译的二进制文件,常用于实现某些软件工具的Python编程接口插件或Python动态链接库

五、python脚本的"__name__"属性

1."__name__"属性的值

每一个python脚本在运行时都有一个"__name__"属性。如果脚本被作为模块被导入,则其"__name__"属性的值被自动设置为模块名;如果脚本独立运行,则其"__name__"属性值就被自动设置为"__main__"

将以下代码保存为test_name.py

print(__name__)
# 直接运行该程序会输出: __main__
# 将该程序作为模块导入会输出: test_name

2.利用__name__属性

利用__name__属性可以控制python程序,比如在程序作为脚本独立运行时设置一些参数或者启动相应函数

 # __author__ = "wyb"
# date: 2018/3/9 # 定义函数func:
def func():
print("程序作为脚本独立启动,不是作为模块使用") if __name__ == '__main__':
func() # 运行函数func

六、python之禅

在python交互式环境中输入import this 并回车便可以看到由Tim Peters总结的python之禅

 import this

 # python之禅:
The Zen of Python, by Tim Peters Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

python基础补充内容的更多相关文章

  1. 09: python基础补充

    1.1 闭包 1.闭包概念 1. 在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用,这样就构成了一个闭包 2. 一般情况下,在我们认知当中,如果一个函数 ...

  2. 3.python基础补充(集合,collection系列,深浅拷贝)

    一.集合 1.集合(set): 把不同的元素组成一起形成集合,是python基本的数据类型.集合元素(set elements):组成集合的成员 python的set和其他语言类似, 是一个无序不重复 ...

  3. python基础补充

    关于模块导入方式: import  random print random.choice(range(10)) 和 from  random import choice print choice(ra ...

  4. Python基础补充(二) 多核CPU上python多线程并行的一个假象【转】

    在python上开启多个线程,由于GIL的存在,每个单独线程都会在竞争到GIL后才运行,这样就干预OS内部的进程(线程)调度,结果在多核CPU上: python的多线程实际是串行执行的,并不会同一时间 ...

  5. 第三篇.6、python基础补充

    ''' 不可变:数字,字符串,元组 可变:列表,字典 原子:数字,字符串 容器:列表,元组,字典 直接访问:数字 顺序:字符串,列表,元组 映射访问:字典 ''' #一一对应 a,b,c,d,e='h ...

  6. Python 基础补充(一) 列表、元组、集合、字典的区别和相互转换

    一.列表.元组.集合.字典的区别   列表 元组 集合 字典 英文 list tuple set dict 可否读写 读写 只读 读写 读写 可否重复 是 是 否 是 存储方式 值 值 键(不能重复) ...

  7. python基础学习10

    python基础学习 内容概要 文件内光标的移动 文件数据修改 函数简介 函数语法结构 内容详情 文件内光标的移动 with open(r'路径','r',encoding='utf8') as f: ...

  8. python基础学习9

    python基础学习 内容概要 字符编码的简介 字符编码的发展史 字符编码的实际应用 文件操作简介 文件读写模式 文件操作模式 文件操作方法 内容详情 字符编码的简介 # 字符编码主要研究的对象是文本 ...

  9. 万恶之源 - Python基础知识补充

    编码转换 编码回顾: 1. ASCII : 最早的编码. ⾥⾯有英⽂⼤写字⺟, ⼩写字⺟, 数字, ⼀些特殊字符. 没有中⽂, 8个01代码, 8个bit, 1个byte 2. GBK: 中⽂国标码, ...

随机推荐

  1. 【opencv基础】cv::Point类型与行列的关系

    关系 row == height == Point.y col == width == Point.x Mat::at(Point(x, y)) == Mat::at(y,x) 参考 1.博客: 完

  2. DS18B20配置

    复位脉冲: 先拉低至少480us,以产生复位脉冲,接着释放4.7k电阻为高,延时15~60us, 进入接收. void DS18B20_Rst(void) { DS18B20_IO_OUT(); // ...

  3. ubuntu mongodb backup/restore (备份和恢复)

    备份(导出) 1.导出单个collection-.json格式 mongoexport --host:127.0.0.1 --port:27017 --db test --collection tes ...

  4. 利用WebApplicationInitializer配置SpringMVC取代web.xml

    对于Spring MVC的DispatcherServlet配置方式,传统的是基于XML方式的,也就是官方说明的XML-based,如下: <servlet> <servlet-na ...

  5. eclipse 配置jdk和maven

    准备工作:确保已安装好jdk和maven,并完全配置环境.若是没有请参考前两篇博客: jdk:    http://www.cnblogs.com/qinbb/p/6861851.html maven ...

  6. 《DSP using MATLAB》Problem 3.6

    逆DTFT定义如下: 需要求积分,

  7. org.apache.commons.lang3.Validate

    Validates.notBlank(user.getName(), "必须提供name");

  8. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.1 规则文件

    转载至:https://blog.csdn.net/wo541075754/article/details/75150267 一个标准的规则文件的格式为已“.drl”结尾的文本文件,因此可以通过记事本 ...

  9. Vue 介绍

    1. 条件 效果图. 如果seen为false,文字将消失 2. 循环 script里定义数据 效果 3. 事件处理 效果如下图, hello world被逆转了

  10. RK3399 Android7.1 try 'jack-diagnose' or see Jack server log

    CPU:RK3399 系统:Android 7.1 Android 7.1系统使用 jack-server 作为 Java 代码编译器 jack-server 由两个配置文件来决定用户使用的端口 /h ...