《疯狂Python讲义》重要笔记--变量
一个Python解释器
接下来的旅程——你需要下载好Python,Python解释器通常放在 /usr/local/bin/python3.7
; 在Unix系统的bash中输入 where python3
在 Windows 机器上, Python 安装通常放在 C:\Python37
中,尽管你可以在运行安装程序时更改此设置。要将此目录添加到路径中,可以将以下命令键入 命令提示符窗口:
set path=%path%;C:\python37
把 /usr/local/bin
放到你 Unix shell 的搜索路径当中 , 这样就能键入命令 python3 ,进入交互模式(interactive mode),如下:
变量
变量就像一个容器,方便存储数据。常量也可以用于存储数据。根据名字可以区分两者的区别:常量保存数据不能更改,变量可以多次更改。
把计算机当做一栋房子,变量就像在这栋房子中的一间房间,拥有自己的地址(id)。变量名就像是房间号,房间的类型就像是变量的类型(type)。
>>> a = 'name'
>>> id(a)
4564940088
>>> type(a)
<class 'str'>
>>>
Python是弱类型语言:
- 变量无须声明即可直接赋值:对一个不存在的变量赋值就相当于定义了一个新变量。
- 变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。
如果一个变量未定义(未赋值),试图使用它时会向你提示错误:
print函数输出变量
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
print()
的语法格式如上:
- *object 代表可以接受不同的对象、任意多个变量或值,因此print()函数完全可以输出多个值。例如:
>>> user_name = 'Alice'
>>> user_age = ''
>>> print('女猪脚:', user_name, '的年龄永远:', user_age)
女猪脚: Alice 的年龄永远: 18
- sep参数(取自英文单词separate)代表分隔符,print()函数默认分隔符为空格,用户可以自定义设置,例如:
>>> print('女猪脚:', user_name, '的年龄永远:', user_age, sep='-*-')
女猪脚:-*-Alice-*-的年龄永远:-*-18
- end参数的默认值为'\n','\n'代表了换行。如果希望print()函数输出之后不会换行,用户可以重设end参数,例如:
>>> print(1);print(2);print(3)
1
2
3
>>> print(1, end='');print(2, end='^*^');print(3,end='oh')
12^*^3oh
- file参数指定print()函数的输出目标,file参数的默认值为sys.stdout,该默认值代表了系统标准输出,也就是屏幕,因此print()函数默认输出到屏幕。
实际上,完全可以通过改变该参数让print()函数输出到指定文件。(这一点好像用的不多,等学了IO模块我们再看看例子吧。)
- flush参数用于控制输出缓存,该参数一般保持为False即可,这样可以获得较好的性能。
print()函数会生成可读性更强的输出,即略去两边的引号,并且打印出经过转义的特殊字符:
动手试试:
>>> s = 'First line.\nSecond line.' # \n means newline
>>> s # without print(), \n is included in the output
'First line.\nSecond line.'
>>> print(s) # with print(), \n produces a new line
First line.
Second line.
变量的命名规则
Python需要使用标识符给变量命名,标识符就是给程序中的变量、类、方法命名的符号(简单来说,标识符就是合法的名字)
- 标识符可以由字母、数字、下划线(_)组成,不能以数字开头
- 标识符不能是Python关键字,但可以包含关键字
- 标识符不能包含空格
Python的关键字和内置函数
Python还包含一系列关键字和内置函数,一般不建议使用它们作为变量名。
- 使用Python关键字作为变量名,Python解释器会报错
- 使用内置函数的名字作为变量名,Python解释器不会报错,只是改内置函数就被这个变量覆盖了,该内置函数就不能再使用了。
利用Python程序查看它所包含的关键字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True',
'and', 'as', 'assert', 'async',
'await', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else',
'except', 'finally', 'for', 'from',
'global', 'if', 'import', 'in',
'is', 'lambda', 'nonlocal', 'not',
'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield']
Python 的内置函数和类型。以下按字母表顺序列出它们。
内置函数 |
||||
---|---|---|---|---|
附知识:三种程序设计中命名规则
一、匈牙利命名法
广泛应用于Microsoft Windows这类环境中。这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成 员变 量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:bEnable, nLength, hWnd。
匈牙利命名法中常用的小写字母的前缀:
前缀 | 类型 | 描述 |
a | Array | 数组 |
b | Bool | 布尔 |
p | Point | 指针 |
二、驼峰命名法
驼峰命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。例如:
printEmployeePaychecks();
函数名中每一个逻辑断点都有一个大写字母来标记。
三、帕斯卡(Pascal)命名法:
与驼峰命名法类似。
只不过驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。因此这种命名法也有人称之为“大驼峰命名法”。
例如:
DisplayInfo();
UserName
都是采用了帕斯卡命名法。
在C#中,以帕斯卡命名法和骆驼命名法居多。
事实上,很多程序设计者在实际命名时会将驼峰命名法和帕斯卡结合使用,例如变量名采用驼峰命名法,而函数采用帕斯卡命名法。
四、下划线命名法
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。
4.1 函数的命名
函数名使用下划线分割小写字母的方式命名:
设备名_操作名();
操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语 宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式,如:
tic_init();
adc_is_busy();
uart_tx_char();
中断函数的命名直接使用 设备名_isr() 的形式命名,如:
timer2_isr();
4.2 变量的命名
变量的命名也采用下划线分割小写字母的方式命名。命名应当准确,不引起歧义,且长度适中。如:
int length;
uint32 test_offset;
- 单字符的名字也是常用的,如i,j,k等,它们通常可用作函数内的局部变量。tmp常用做临时变量名。
- 局部静态变量,应加s_词冠(表示static),如:
static int s_lastw;
- 全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:
void (* g_capture_hook)(void);
4.3 常量及宏的命名
采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,防止模块间命名的重复。如:
#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))
当然,看作接口的宏可以按照函数的命名方法命名,例如:
#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)
据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。
命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。
《疯狂Python讲义》重要笔记--变量的更多相关文章
- 疯狂Python讲义PDF高清完整版免费下载|百度网盘
百度网盘:疯狂Python讲义PDF高清完整版免费下载 提取码:uzba 内容简介 <疯狂Python讲义>既是一本适合初学者入门Python的图书(一个8岁的小朋友在未出版前已学习了本书 ...
- 《疯狂java讲义》笔记 1-5章
1.编译语言和解释语言理解,摘自李刚老师的<疯狂Java讲义>第三版: 就是说,Java和.net都是编译型有事解释型语言.编译型就是根据不同平台编译成不同的可执行机器码,编译过程中会进行 ...
- 读《疯狂Java讲义》笔记总结一
最近在读<疯狂Java讲义>,现把其中遇到的一些自己以前没掌握的点儿记录下来. 1.字符串相关 字符串不是基本类型,字符串是一个类,也就是一个引用类型. 字符串转int类型String a ...
- 《疯狂Python讲义》重要笔记——Python简介
简介 Python是一种面向对象.解释型.弱类型的脚本语言,同时也是一种功能强大的通过语言,它提供了高效的高级数据结构,还有简单有效的面向对象编程. 在大数据.人工智能(AI)领域应用广泛,因此变得流 ...
- 【疯狂Java讲义学习笔记】【流程控制与数组】
[学习笔记]1.switch语句后的expression表达式的数据类型只能是byte.short.char.int四个整数类型.String(Java 7后才支持)和枚举类型. 2.数组的长度不可变 ...
- 【疯狂Java讲义学习笔记】【数据类型与运算符】
[学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...
- 读《疯狂Java讲义》笔记总结三
1.初始化块 实际上初始化块是一个假象,使用javac命令编译Java类后,该Java类中的初始化块会消失--初始化块中代码会被 "还原" 到每一个构造器中,且位于构造器全部代码的 ...
- 读《疯狂Java讲义》笔记总结二
1.变量分类图 2.通过实例访问静态变量(类变量) 3.静态导入 4.构造器 5.创建对象内存过程
- 疯狂Android讲义 - 学习笔记(八)
第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...
随机推荐
- 数据结构与算法(6) -- heap
binary heap就是一种complete binary tree(完全二叉树).也就是说,整棵binary tree除了最底层的叶节点之外,都是满的.而最底层的叶节点由左至右又不得有空隙. 以上 ...
- HDU-5968异或密码
超级传送门 题目描述: 晨晨在纸上写了一个长度为N的非负整数序列{ai}.对于这个序列的一个连续子序列{al,al+1,…,ar}晨晨可以求出其中所有数异或的结果 alxoral+1xor...xor ...
- Shell脚本备份文件
使用crontab 定时备份文件 1. 编辑crontab规则 2. 编写shell脚本 cp -R "/data/www/code" "/home/backup/cod ...
- 00110_Class类
1.Class 对象是在加载类时由 Java虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的: 2.获取Class对象的三种方式 (1)方式一:通过Object类中的getObj ...
- poj 1724 最短路+优先队列(两个约束条件)
/*两个约束条件求最短路,用优先队列*/ #include<stdio.h> #include<string.h> #include<queue> using na ...
- Linux imooc learning
https://www.imooc.com/video/3529 Windows Vs Linux Linux: (other linux overall https://onedrive.liv ...
- 本地数据文件加载到hive表
1.在test数据库下创建表格 hive> create table vod_record_all( > watch_time date, > device_id string, & ...
- html实现 省——市——区三级联动
html实现 省——市——区三级联动 html中实现三级联动是一个不错的demo,博主在这里跟大家分享一下实现的过程,以及自己在过程中出现的一些问题,仅供参考. 首先我们将全国的省市区数据导入进来, ...
- Spring MVC 入门(一)
什么是 Spring MVC 学习某一样东西之前,我们一定要大致知道这个东西是什么,能干什么,为什么要用它. Spring MVC 是一个开源平台,一个基于 Spring 的 MVC 框架,它支持基于 ...
- firedac的TFDStoredProc动态创建并调用存储过程
1)中间件执行存储过程 sp.Close; sp.StoredProcName := procName; sp.Prepare; // 生成存储过程的参数列表,无任何OUTPUT的存储过程,也会自动 ...