一个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是弱类型语言:

  1. 变量无须声明即可直接赋值:对一个不存在的变量赋值就相当于定义了一个新变量。
  2. 变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。

如果一个变量未定义(未赋值),试图使用它时会向你提示错误:

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需要使用标识符给变量命名,标识符就是给程序中的变量、类、方法命名的符号(简单来说,标识符就是合法的名字)

  1. 标识符可以由字母、数字、下划线(_)组成,不能以数字开头
  2. 标识符不能是Python关键字,但可以包含关键字
  3. 标识符不能包含空格

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 的内置函数和类型。以下按字母表顺序列出它们。

   

内置函数

   

abs()

delattr()

hash()

memoryview()

set()

all()

dict()

help()

min()

setattr()

any()

dir()

hex()

next()

slice()

ascii()

divmod()

id()

object()

sorted()

bin()

enumerate()

input()

oct()

staticmethod()

bool()

eval()

int()

open()

str()

breakpoint()

exec()

isinstance()

ord()

sum()

bytearray()

filter()

issubclass()

pow()

super()

bytes()

float()

iter()

print()

tuple()

callable()

format()

len()

property()

type()

chr()

frozenset()

list()

range()

vars()

classmethod()

getattr()

locals()

repr()

zip()

compile()

globals()

map()

reversed()

__import__()

complex()

hasattr()

max()

round()

 

附知识:三种程序设计中命名规则

一、匈牙利命名法

广泛应用于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讲义》重要笔记--变量的更多相关文章

  1. 疯狂Python讲义PDF高清完整版免费下载|百度网盘

    百度网盘:疯狂Python讲义PDF高清完整版免费下载 提取码:uzba 内容简介 <疯狂Python讲义>既是一本适合初学者入门Python的图书(一个8岁的小朋友在未出版前已学习了本书 ...

  2. 《疯狂java讲义》笔记 1-5章

    1.编译语言和解释语言理解,摘自李刚老师的<疯狂Java讲义>第三版: 就是说,Java和.net都是编译型有事解释型语言.编译型就是根据不同平台编译成不同的可执行机器码,编译过程中会进行 ...

  3. 读《疯狂Java讲义》笔记总结一

    最近在读<疯狂Java讲义>,现把其中遇到的一些自己以前没掌握的点儿记录下来. 1.字符串相关 字符串不是基本类型,字符串是一个类,也就是一个引用类型. 字符串转int类型String a ...

  4. 《疯狂Python讲义》重要笔记——Python简介

    简介 Python是一种面向对象.解释型.弱类型的脚本语言,同时也是一种功能强大的通过语言,它提供了高效的高级数据结构,还有简单有效的面向对象编程. 在大数据.人工智能(AI)领域应用广泛,因此变得流 ...

  5. 【疯狂Java讲义学习笔记】【流程控制与数组】

    [学习笔记]1.switch语句后的expression表达式的数据类型只能是byte.short.char.int四个整数类型.String(Java 7后才支持)和枚举类型. 2.数组的长度不可变 ...

  6. 【疯狂Java讲义学习笔记】【数据类型与运算符】

    [学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...

  7. 读《疯狂Java讲义》笔记总结三

    1.初始化块 实际上初始化块是一个假象,使用javac命令编译Java类后,该Java类中的初始化块会消失--初始化块中代码会被 "还原" 到每一个构造器中,且位于构造器全部代码的 ...

  8. 读《疯狂Java讲义》笔记总结二

    1.变量分类图 2.通过实例访问静态变量(类变量) 3.静态导入 4.构造器 5.创建对象内存过程

  9. 疯狂Android讲义 - 学习笔记(八)

    第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...

随机推荐

  1. (转) Hibernate检索方式概述

    http://blog.csdn.net/yerenyuan_pku/article/details/70554816 Hibernate检索方式概述 我们在对数据库的操作中,最常用的是select, ...

  2. C# Request

    string type = Request["type"]; //值为null; //?type= 值为""; //?type=12 值为"12&qu ...

  3. bat配置JDK环境变量

    最近总是部署服务器,总是要安装配置JDK,今天就想写个bat来配置JDK的环境变量,首先介绍点bat的小知识 @符号后面的命令不会显示在terminal上 例如: @echo运行时 隐藏命令(不在te ...

  4. sql的四种连接方式

    1.内联接.(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students ...

  5. 【上海站】EOLINKER 用户培训之旅,等你来共建API新连接

    从今年3月4日起,EOLINKER AMS 团队将再次开启全国用户培训之旅.本次全国培训之旅依旧将覆盖北上广深等国内主要城市,重点提供两种服务内容,一是 对 EOLINKER 产品的交流,包括 API ...

  6. copy.c实现

    #cat copy.c #include <stdio.h> #include <stdlib.h> #include <string.h> int copyFil ...

  7. python之urllib库

    urllib库 urllib库是Python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. urlopen函数: 在Python3的urlli ...

  8. soui edit passwrod模式下禁用输入法

    一直在用soui做客户端界面,今天发现密码edit在中文输入法下不能输入密码.我在想难道不是这样吗,密码就该用英文输入法啊. 然后我就用mfc的做了个demo,发现mfc的edit在密码模式下是可以用 ...

  9. 三、Scrapy中选择器用法

    官方示例源码<html> <head>  <base href='http://example.com/' />  <title>Example web ...

  10. MySql 内存表使用

    MySql 内存表使用 内存表使用哈希散列索引把数据保存在内存中,因此具有极快的速度,适合缓存中小型数据库,但是使用上受到一些限制,以下是蓝草使用的一些感受. 1.heap对所有用户的连接是可见的,这 ...