python实战系列之python变量

变量与数据类型

变量

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

变量命名规则

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

  1. 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。
  2. 2. 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greetingmessage会引发错误。
  3. 3. 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,

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

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

xinsz08@xinsz08:~$ python3Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on linuxType "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 1SyntaxError: 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 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)

补充:

  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. 使用全大写,小写,形式显示字符串

原文发布于微信公众号 - 大数据架构师专家(xinsz08)

原文发表时间:2017-10-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据和云计算技术

由快速排序到分治思想

算法是基础,小蓝同学准备些总结一系列算法分享给大家,这是第一篇《由快速排序到分治思想》,非常赞!希望对大家有帮助,大家会喜欢! 快速排序是一种基于分治思想...

3496
来自专栏liuchengxu

Scala 最佳实践:纯函数

我们所处的是一个命令式编程(imperative programming)的时代,这也是我们为何更喜欢用命令式风格写代码的原因。在我们周围的一切都是可变的。虽然...

871
来自专栏陈树义

如何快速学好Shell脚本?

1053
来自专栏zhisheng

干货分享:让你分分钟学会 javascript 闭包 一像素

闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它。...

3485
来自专栏CaiRui

Python之‘数据结构’

简介 数据结构基本上就是--它们是可以处理一些数据的结构。或者说,它们是用来存储一组相关数据的。在Python里面有三种内建的数据结构--列表、元组和字典。 一...

1998
来自专栏企鹅号快讯

Python数据类型—字符串(1)

Python数据类型 — 字符串(1) 除了数值,我们还常常需要对文字进行处理。本文将介绍Python用于文字处理的数据类型 — 字符串,并解释如何在计算机系统...

2208
来自专栏菜鸟前端工程师

JavaScript学习笔记008-this0arguments0箭头函数

1011
来自专栏GreenLeaves

Jquery dom搜索之siblings()方法

      如果给定一个dom的元素集合的算则其对象,siblings()方法允许我们在dom树中搜索这个元素集合的同胞元素,并匹配这些元素构造一个新的对象,J...

2267
来自专栏黑泽君的专栏

Java中方法重写的应用

  当子类需要父类的功能,而功能的主体子类还有自己特有的内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类自己特有的内容。

1982
来自专栏MyBlog

Effective.Java 读书笔记(8)关于equals方法

重写equals看上去十分简单对吧,但是我觉得很多时候重写equals可能会招致一些问题,这些问题有时可能会特别严重,当然了不重写不就完事了吗?但是这只适用于那...

854

扫码关注云+社区

领取腾讯云代金券