python实战系列之python变量

变量与数据类型

变量

编程语言中为了能够更好的处理数据,都需要使用一些变量。Python 语言的变量可以是各种不同的数据类型,使用变量的时候不需要声明直接使用就可以。

变量命名规则

Python 3 中的变量命名有一定要求:

  1. 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。

  2. 2. 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greetingmessage会引发错误。

  3. 3. 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,

关键字指的是为 Python 语言预留的单词,例如 import。

我们可以在交互式环境下使用 keyword 模块查看关键字:

xinsz08@xinsz08:~$ python3

Python 3.5.2 (default, Nov 17 2016, 17:05:23)

[GCC 5.4.0 20160609] on linux

Type "help", "copyright", "credits" or  "license" for more information.

>>> import keyword

>>> keyword.kwlist

['False', 'None', 'True', 'and', 'as', 'assert', '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']

我们看看使用关键字来定义会出现什么情况

>>> None=1

  File "<stdin>",  line 1

SyntaxError: can't assign to keyword

 

另外需要注意的是: 慎用小写字母I和大写字母O,因为可能被人看成1和0 ,不过ubuntu还是蛮好区分的

一般在公司我们要求变量名要简短而且具有描述性,比如name比n好,name_length 要比length_of_persons_name好

基本数据类型

Python 3 中,包括以下几种基本数据类型:

  1. 整数:例如 100,-200,0 等

  2. 布尔数:True 或 False

  3. 浮点数:小数,例如     1.5,2.5

  4. None:空值,注意与0是不同的,可以理解为未定义的值。

除了这四种之外,还有一些其他不常用的类型,例如复数,但因为用的比较少,这里不做过多介绍。

使用变量及打印

在XFce 终端中输入 python3,进入交互环境,尝试输入如下的代码,并理解输出的含义,注意执行后不要退出,需要继续下一节的实验内容:

>>> a = 10

>>> b = 10.6

>>> c = True

>>> d = None

>>> print(a,b,c,d)

10 10.6 True None

>>> print(type(a),a)

<class 'int'> 10

>>> print(type(b),b)

<class 'float'> 10.6

>>> print(type(c),c)

<class 'bool'> True

>>> print(type(d),d)

<class 'NoneType'> None

在上述的代码中,type 是 Python 3 内置的一个函数,用来显示变量的数据类型

 

运算

继续在上一节中的 python 3 的交互环境中执行下面的操作,理解 Python 3 中的数学运算:

e = a + b

print(e)

f = b/a

print(f)

g = b - a

print(g)

h = b * a

print(h)

可以看到整数和浮点数的混合计算中,整数会被转换为浮点数。

 

除了数学运算之外,还有 and 和 or 的逻辑运算:

True and False

True or False

c and False

c or False

and 表示与运算,只有两个运算值都是 True 才返回 True,而 or 表示或运算,有一个为 True 则返回 True。

 

python实战系列之python变量

字符串

Python 3 中的字符串可以使用双引号或单引号标示,如果字符串中出现引号,则可以使用 \来去除引号标示字符串的特殊作用。

几种字符串的表示方法:

>>> str1 ="hello"

>>> str2 = 'xinsz08'

>>> str3 = 'hello.\'xinsz08\''

>>> str4 = "hello,'xinsz08'"

>>> str5 = 'hello,"xinszou"'

 

注意 str4 和 str5 都没有使用 \,但仍然可以在字符串中使用引号,相信你已经发现了原因。

如果需要输入多行字符串,又该如何处理呢?可以尝试使用 """ 三个双引号:

str6 = """ hello,

xinsz08 """

支持使用 + 连接字符串:

str1 + ' ' + str2

字符串可以使用数字进行索引,数字0为第一个字符,依次类推。数字 -1 为最后一个字符,使用冒号进行切片:

str1

str1[0]

str1[1]

str1[-1]

str1[-2]

str1[:2]

str1[3:]

切片的位置很容易让人迷惑,所以需要多尝试一些切片的方式来理解。

Python 3 中的内置函数 len() 可以获得字符串包括的字符数量:

len(str2)

python实战系列之python变量

 

补充:

  1. 使用方法修改字符串的大小写

xinsz08@xinsz08:~$vim name.py

xinsz08@xinsz08:~$cat name.py

name="xinsz08love python"

print(name.title())

 

xinsz08@xinsz08:~$python3 name.py

Xinsz08Love Python

可以看到每个单词的第一个字母都变成了大写

 

如果是全部变为大写或者全部变为小写呢

name.upper()  全部变为大写

name.lower()全部变为小写

 

xinsz08@xinsz08:~$vim name.py

xinsz08@xinsz08:~$cat name.py

name="xinsz08love python"

print(name.title())

print(name.upper())

print(name.lower())

 

xinsz08@xinsz08:~$python3 name.py

Xinsz08Love Python  

XINSZ08LOVE PYTHON  全部大写

xinsz08love python      全部小写

 

 

  1. python之禅

编程语言Perl曾在互联网领域长期占据着统治地位,早期的大多数交互式网站使用的都是Perl脚本。彼时,“解决问题的办法有多个”被Perl社区奉为座右铭。

 

这种理念一度深受大家 的喜爱,因为这种语言固有的灵活性使得大多数问题都有很多不同的解决之道。在开发项目期间,这种灵活性是可以接受的,但大家最终认识到,过于强调灵活性会导致大型项目难以维护:要通过研究代码搞清楚当时解决复杂问题的人是怎么想的,既困难又麻烦,还会耗费大量的时间。

 

经验丰富的程序员倡导尽可能避繁就简。Python社区的理念都包含在TimPeters撰写的“Python之禅”中。要获悉这些有关编写优秀Python代码的指导原则,只需在解释器中执行命 令import this 。

 

>>>import this

The Zenof Python, by Tim Peters

 

Beautifulis better than ugly.

Explicitis better than implicit.

Simple isbetter than complex.

Complexis better than complicated.

Flat isbetter than nested.

Sparse isbetter than dense.

Readabilitycounts.

Specialcases aren't special enough to break the rules.

Althoughpracticality beats purity.

Errorsshould never pass silently.

Unlessexplicitly silenced.

In theface of ambiguity, refuse the temptation to guess.

Thereshould be one-- and preferably only one --obvious way to do it.

Althoughthat way may not be obvious at first unless you're Dutch.

Now isbetter than never.

Althoughnever is often better than *right* now.

If theimplementation is hard to explain, it's a bad idea.

If theimplementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more ofthose!

 

总结:

  1. 如何使用变量

  2. 如何创建变量

  3. 字符串是什么

  4. 使用全大写,小写,形式显示字符串

 

上一篇:c-销毁锁定的互斥锁时pthread_mutex_destroy的正确行为是什么


下一篇:c-pthread取消成功,但是在几百个线程后无法创建线程