Python笔记(2) Python基础

  • 1. 解释器
  • 2. 编码
  • 3. 标识符
  • 4. 程序入口
  • 5. 模块
  • 6. 包

1. 解释器

经常可以看到 Python 源码文件中第一行经常出现下面这行代码:

#!/usr/bin/python

是用来说明脚本语言是 python 的,要用/usr/bin下面的程序 python 这个解释器,来解释 python 脚本,来运行 python 脚本的
指定用什么解释器运行脚本以及解释器所在的位置


2. 编码

偶尔可以看到 Python 源码文件中第二行经常出现下面这行代码:

# -*- coding: utf-8 -*-

默认情况下,Python 2 源码文件以 ASCII 编码,为了提高兼容性,经常设置以 UTF-8 编码
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串
所以只用在 Python 3 源码文件比较少见到

当然也可以为源码文件指定不同的编码


3. 标识符

在 Python 里,标识符由字母数字下划线组成
不能以数字开头,并且区分大小写

以下划线开头的标识符是有特殊意义的:

  1. 以单下划线开头 _foo 的代表:不能直接访问的类属性
    需通过类提供的接口进行访问,不能用 from xxx import * 而导入

  2. 以双下划线开头的 __foo 代表: 类的私有成员

  3. 以双下划线开头和结尾的__foo__代表:特殊方法专用的标识
    如__init__ () 代表类的构造函数


4. 程序入口

在一个.py文件中,如果不是在定义函数,也就是说不是在def关键字的内嵌结构内
python会默认其余部分函数是main函数,并自动执行
但正规工程中,一般都会将main函数写为:

if __name__ == "__main__"

假设test1.py文件为:

print("Test1 one")def SayHello():print("Hello World")SayHello()
print("Test1 two")

假设test2.py文件为:

print("Test2 one")def SayHello():print("Hello World !")if __name__ == "__main__":SayHello()print("Test2 two")

通过运行test3.py文件查看调用的程序入口:

import test1print()
import test2# Test1 one
# Hello World !
# Test1 two
#
# Test2 one

可以看出test2.py文件 if __name__ == "__main__": 部分没有执行
因为每个模块都有一个__name__属性
当其值是’main’时,表明该模块自身在运行,而不是被引入

所以,在模块被引入时,希望模块中的某一程序块不执行
可以用__name__属性来使该程序块仅在该模块自身运行时执行


5. 模块

用 python 解释器来编程,如果从 Python 解释器退出再进入
那么定义的所有的方法和变量就都消失了

为此 Python 提供了一个办法,把这些定义存放在文件中
能定义函数,类和变量,模块里也能包含可执行的代码
为一些脚本或者交互式的解释器实例使用,这个文件被称为模块

模块是一个包含了 对象定义和语句的文件,其后缀名是.py的文件
模块可以被别的程序引入,以使用该模块中的函数等功能
下例是个简单的模块 support.py:

def print_func(par):print("Hello,", par)return

模块定义好后,可以使用 import 语句来引入模块

import supportsupport.print_func("kaka")# Hello, kaka

一个模块只会被导入一次,不管执行了多少次import
这样可以防止导入模块被一遍又一遍地执行


6. 包

包是一个分层次的文件目录结构
它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境
但该文件夹下必须存在__init__.py文件, 该文件的内容可以为空,用于标识当前文件夹是一个包
如果把刚刚的 support.py文件放在同目录的 /test文件夹中
通过 from 包 import 文件 调用

from test import supportsupport.print_func("kaka")# Hello, kaka

参考:

Python 基础教程 | 菜鸟教程
中文 Python 笔记


相关推荐:

Python笔记(1) Python简介


谢谢!

Python笔记(2) Python基础相关推荐

  1. Python笔记day04(基础)|列表、元组

    Python笔记day04(基础) 1,昨日内容及作业讲解 ascii:字母,数字,特殊字符:1个字节,8位 Unicode:16位 两个字节 升级 32 位 四个字节 utf-8:最少一个字节 8位 ...

  2. python 网页版笔记_【Python笔记】Python网页正文抽取工具

    本文信息本文由方法SEO顾问发表于2016-05-2018:48:27,共 1153 字,转载请注明:[Python笔记]Python网页正文抽取工具_[方法SEO顾问],如果我网站的文章对你有所帮助 ...

  3. python知识笔记_[Python笔记]第一篇:基础知识

    二.为什么要使用Python 优点: 学习成本低 开发效率高–拥有丰富而且强大的第三方库 高级语言–不用关心底层运作细节 可扩展性–Python是一门胶水语言,能于其他语言如C ,C#进行扩展 缺点: ...

  4. [Python笔记]第一篇:基础知识

    本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...

  5. python笔记(零基础学Python)

    <零基础学Python> 1.基础 2.流程控制语句 3.序列的应用 4.字符串.正则表达式 5.函数 6.面向对象 7.模块(库) 8.异常处理+程序调试 9.文件及目录操作 10.Py ...

  6. 【python笔记】python基础(注释,缩进,变量,表达式,运算符)

    目录 python注释: python设计风格: 缩进: python程序的基本要素: 变量: 表达式: python运算符: python注释: #作为单行注释的开始标记 '''对多行注释 pyth ...

  7. 小甲鱼零基础学python笔记 P20 python变量简单了解

    P20 python变量: python默认是不会有返回值样例如下: 先给hello变量赋值,这里选择的是打印print 通过传递变量的将temp=hell()变量后只会返回默认值 需要使用参数ret ...

  8. 学会Python真的有高收入?「python笔记」Python对象

    1. Python对象 Python使用对象模型来存储数据.构造任何类型的值都是一个对象. 所有的Python对象都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对 ...

  9. 廖雪峰python笔记1 python简介

    廖雪峰python笔记 是自己根据廖雪峰的python教程做的一点笔记 1 python简介 1 python简介 廖雪峰python笔记 1.1 python是解释性语言 1.2 Python适合开 ...

  10. 【python笔记】python模块 datatime模块

    模块 使用" import xxx module "导入模块的本质就是: 将xxxmodule .py 中的全部代码加载到内存井执行,然后将整个模块内容赋值给与模块同名的变量,该变 ...

最新文章

  1. 使用 IntraWeb (36) - TIWServerControllerBase
  2. javascript的特点
  3. hive中not in优化
  4. 4.openstack之mitaka搭建glance镜像服务
  5. 关于MySQL buffer pool的预读机制
  6. HTTP协议及POST与GET操作差异,C#中如何使用POST、GET等
  7. selenium获取新页面标签页(只弹出一个新页面的切换)
  8. 对比较器的使用方法的研究
  9. 各个平台下 Perl 源码安装教程
  10. 隧道管廊UWB定位系统解决方案
  11. php 单词替换,单词替换 - Shiyin's note
  12. 国外雅虎邮箱的服务器地址,yahoo
  13. Android DNK安装笔记
  14. 手把手教你用VMware安装Centos7.9镜像(史上最详细)
  15. ktv系统服务器,ktv服务器主机系统
  16. 等本等息,等额本息,等额本金,看懂再贷款,坑多!
  17. 帆软(FineReport)---- 数据决策系统的基本配置
  18. 从GitHub上下载项目后如何运行,学习
  19. ShaderToy的使用方法
  20. emqtt 启动报错 Node 'emq@127.0.0.0' not responding to pings.

热门文章

  1. 【redis】 windows 32x 64x
  2. mysql GRANT
  3. 假如你心中有个莎乐美
  4. 程序员的算法课(1)-算法概述
  5. UNIDAC如何驱动MSSQL2000
  6. 2018/12/13
  7. java poi 操作ppt
  8. React 快速上手 - 目录索引
  9. 【推荐】2017年你应该了解的11款新型编程工具
  10. Servlet 调用过程