Python的变量及简单类型

1.  变量

  在Python编程中,变量是用来存放值或对像的容器。变量的名称可以自定义,但需遵循一定的规范,否则可能会引发一些错误。Python的变量可以分为数字、字符和对象三种。

1.1  变量的命名及使用

  遵守变量的命名规则和命名指南,可以避免不必要的错误,提高代码的可读性和易理解性。其命名规则如下:

  (1)变量名只能包含字母、数字和下划线。但是不能以数字打头。例如,定义一个表示姓名的变量,可以定义为:name1、_name、name_1等,但一定不能定义为1_name、1name等。

  (2)变量名不能包含空格,但可以用下划线来分割其中的单词。例如,定义一个变量为goods_list 可行,但是不能定义为goods list ,这样可能会引发一些意外的错误。

  (3)变量名不能使用Python的关键字和函数,也不能使用Python保留的特殊单词。例如,不能使用print当作变量名。

  (4)变量名应简短,并且具有一定含义,让别人一看就知道大概的意思。例如,name比n好;student_name比s_n好;name_length比length_of_person_name好。

  (5)变量名中尽量不要使用小写字母i和大写字母O,因为它们很容易被误看为1和0。

注意:虽然Python中变量名可以使用大写字母,但目前大家都习惯用小写字母来命名,因此,尽量也避免使用大写字母来命名变量。

1.2  使用变量时避免命名错误

  当我们运行Python程序时,如果程序有错,Python解释器会给我们提供一个traceback。traceback是一条记录,指出了解释器尝试运行代码时,在代码的多少行的什么地方报错了。

例如:

  

  当我们执行以上代码时,就会提示以下错误:

  从上图,我们清楚的知道,代码的第2行的‘mesage’ 没有被定义。我们检查一下代码,发现打印的变量mesage 少了一个字母s,不是我们的在第一行定义的变量message。

1.3  字符串

  所谓字符串就是一系列字符。在Python中,用引号括起来的都是字符,其中引号 可以是单引号,也可以是双引号。

  例如,

 1.3.1  字符串的大小写

  在实际应用中,有时我们需将字符串的首字母大写,或者字符串所有字母都大写或小写。

  例如,我们有一个字符串name = "xiao wei",现在以各种形式打印如下:

  (1)字符串name中每个单词的首字母大写,用函数title():

  (2)字符串name所有字母大写,用函数upper():

  (3) 字符串name所有字母小写,用函数lower():

1.3.2  字符串的拼接

  在许多情况下,我们需将几个字符串拼接到一块。

  例如,我们分别用不同的变量存储姓和名的字符串,然后将其拼接为完整的姓名。

 1.3.3  制表符和换行符的应用

  在字符串中,有时我们需要添加一些空白,此时可以使用制表符或换行符实现。

  例如,要在字符串中添加制表符,可以使用字符组合\t:

  例如,要在字符串中添加换行符,可使用字符组合\n:

 1.3.4 删除空白

  在程序中,有时额外的空白往往会给人带来迷惑,也可能导致数据无法被显示出来。所以有时删除字符串左右的空白显得尤其重要。我们可以使用函数lstrip(),rstrip(),strip() 。

  例如,需要删除字符串中左边的空白,可以使用函数lstrip():

  例如,需要删除字符串中右边的空白,可以使用函数rstrip():

  例如,需要删除字符串中左右边的空白,可以使用函数strip():

 1.3.5  字符串中避免语法错误

  语法错误是一种时不时会遇到的错误。程序包中包含非法的Python代码时,就会导致语法错误。

  例如,在使用单引号括起来的字符串中,如果包含撇号,就会导致错误。因为Python解释器会将第一个单引号和撇号之间的内容看作一个字符串,而将余下的文本看作是Python代码,从而引发错误。在Python中,字符串既可以用单引号括起来,也可以使用双引号。但是,当字符串中存在撇号时,只能使用双引号。

  单引号和双引号的错误使用:

  单引号和双引号的正确使用:

1.3.6  Python2 中的print语句

  在Python 2 中,print语句的语法跟Python3 有些不同,它 不需要把要打印的内容放到括号中。

  例如,我们在Python 2中打印“Hello python 2.7 world!”:

1.3.6 字符串的常规操作

  在Python中,我们对字符串的操作使用比较多,现将字符串的常规总结一下:

 name = "my \tname is {name} and i am {year} old"

 print(name.capitalize())     # 首字母大写
print(name.count("y")) # 统计字母出现的次数
print(name.center(50,"-")) #居中打印50个字符,不够的在两端补充“-”
print(name.endswith("un")) #判断字符串以什么结尾,若结果为真,返回True,否则返回False
print(name.expandtabs(tabsize=20)) # 将tab键转换为多少个字符,即打印多个tab字符
print(name.find("name")) #返回字符串所在的位置,即下标、索引
print(name[name.find(name):9]) #字符串切片
print(name.format(name='yun',year=26)) # 字符串格式化输出一,用等号赋值
print(name.format_map({'name':'yun','year':''})) # 字符串格式化输出,用字典赋值
print(name.index("name")) # 根据某字符查找其在字符串中的索引,即下标
print(name.isalnum()) # 是否包含阿拉伯数据,单字符中不能有特殊符号
print('abc123'.isalnum())
print('abc123\t'.isalnum()) # 是否包含阿拉伯数据,单字符中不能有特殊符号
print('abA'.isdecimal()) # 判断是否为数字,是返回True,否则返回False
print(''.isdecimal())
print('1A'.isdigit()) # 判断是不是数字
print('a1A'.isidentifier()) #判断是不是一个合法的标识符
print('s 1A'.isnumeric()) #判断是不是一个数字
print(''.isnumeric())
print('My Name Is'.istitle()) #判断首字母是否大写
print('my Name Is'.istitle()) #判断首字母是否大写
print('My name is'.isprintable()) # tty file,drive file 基本不可以打印
print('My Name Is'.isupper()) # 判断是否大写
print('AAAAA'.isupper()) # 判断是否大写
print('+'.join(['a','b','c'])) # 用什么连接起来
print(''.join(['a','b','c'])) # 用什么连接起来
print(','.join(['a','b','c'])) # 用什么连接起来
print(name.ljust(50,'*')) # 打印长度为50的字符串,不够在右边用”*“填充
print(name.rjust(50,'-'))# 打印长度为50的字符串,不够在左边用”-“填充
print('Yun'.lower()) # 转为小写
print('Yun'.upper()) # 转为大写
print('\nYun')
print('\nYun'.lstrip()) # 去右边的空格
print('Yun\n'.rstrip()) # 去左边的空格
print('\nYun\n'.strip()) # 去掉左右空格
print(' Yun\n'.strip())
p = str.maketrans("abcdef",'') # 对应替换 ,前后个数得一样多
print("Yun Qtian".translate(p))
print('Yun'.replace('Y','y')) # 字符替换
print('Yun Qtian'.rfind('t')) # 从左向右,找到该字符所在的位置,并返回该位置
print('Yun Qtian'.split('Q')) # 以某字符为分割符,分成多个元素
print('Yun Qtian'.split(' ')) # 以某字符为分割符,分成多个元素
print('1+2+3+4'.split('+'))
print('1+2\n+3+4'.splitlines()) # 以空格分割
print('Yun Qtian'.swapcase()) # 大小写互换
print('yun qtian'.title()) # 首字母大写
print('yun qtian'.zfill(50)) # 打印50字符,不够的在左边用0填充

1.4  数字

  在编程中,经常使用数字来记录游戏得分、便是可视化数据、存储Web应用信息等。

1.4.1 整数

  在32位系统上,整数的位数为32位,取值范围为-2**31~2**31-1,即 -2147483648 ~ 2147483647。

  在64位系统上,整数的位数为64位,取值范围为:-2**63~2**63-1,即 -9223372036854775808~9223372036854775807 。

  在Python 2.2 开始,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今Python中不需要用字母L来标识数据是否为long(长整型)。所以  在Python中,输入的整数都会被默认为字符型。

  例如,我们输入a的值26,b的值12,我们需要用input()来输入26和12,并将其相加。

  (1)我们直接输入a和b的值,不做认为出来,其结果如下:

  从上面的运行结果可知,并没有实现我们想要的a和b相加,而是将其拼接到一起,下面我们来看看其类型究竟是什么。

  

  (2)用type()函数查看a和b的类型:

  从上图可知,Python解释器默认将我们输入的a和b的整数当做了字符,所有我们打印a加b的时候,就被当做字符串拼接。那么我们该如何实现a和b相加呢?

  

  (3)用int()函数强行转型。如下图所示:

  在Python中,可对整数执行加(+)、减(-)、乘(*)、除(/)运算等,并且在终端回话中,Python直接返回运算结果。

  在Python中,使用两个乘号表示乘方运算。

  Python还支持运算次序,因此可以在同一个表达式中使用多种运算,还可以使用括号来修改运算次序。

1.4.2  浮点数

  python中将带小数点的数字都称为浮点数。你只需输入你想要使用的数字即可,Python通常都会按你所期望的方式处理它们:

  注意:Python运算结果中包含的小数位数可能不是确认的,这是所有语言都存在的问题,没必要担心。就现在而言,暂时忽略多余的小数位数即可。实际运用中我们再根际实际需要对其进行处理。

1.4.3  使用函数 str()  避免类型错误

  在Python中,当你输入的值是整数(int)的变量,Python不知道这个正式是数值,还是字符。因此,可以调用str()函数,将非字符串值表示为字符串:

  例如,错误的使用:

  例如,正式使用:

1.4.4 Python 2 中的整数

  在Python 2 中,将两个整数相除得到的结果稍有不同。整数相除的结果只包含整数部分,不进行四舍五入,且小数部分直接删除。若要避免这种情况,必须保证至少有一个操作数是浮点数,这样结果也将是浮点数。

  例如:

1.5 注释

  在大多数编程语言中,注释都是一项很有用的功能。代码中,一个好的注释,可以帮忙你更好的理解程序功能,也能有利于排查问题,方便后期的维护。

1.5.1 如何编写注释

  在Python中,单行注释用井号(#)标识,井号后面的内容都会被Python解释器忽略。多行注释前后分别用3个单引号括起来。

  例如,单行注释:

  例如,多行注释:

1.5.2 该编写什么样的注释

  编写注释的主要目的是描述代码要做什么,以及是如何做的。在开发项目期间,我们应该对各个部分如何协调工作了如指掌,但过一段时间后,有一些细节我们就可能记不清楚了。很多情况请,我们都是通过看代码的逻辑来了解程序的实现功能及业务逻辑。此时,如果代码没有注释,代码看起来就非常费劲。相反,一个清晰的代码注释,可以帮助你快说理清代码的来龙去脉,大大节省了不必要浪费的时间。

  因此,在编程过程中要养成在代码中编写清晰、简洁的注释的良好习惯。

Python的变量及简单数据类型的更多相关文章

  1. 说说 Python 的变量以及简单数据类型

    1 变量 先来看一个示例: news="我国第一个人工智能规划问世"print(news) 运行结果: 可以看出使用 Python 定义变量很简单,甚至都不需要指定变量的类型. 1 ...

  2. python基础-----变量和简单数据类型

    初识变量 1.变量命名规则: a.字母 b.数字(不能开头) c.下划线 ps.硬性规定,命名必须是字母,数字,下划线,且不能以数字开头. 软性规则,以下划线分割 2.实例: a.写法: age_of ...

  3. python入门-变量和简单数据类型

    1 title() 是以首字母大写的方式显示每个单词 lower() 字母小写 upper() 字母大写 2 python使用+号来合并字符串 字符串中使用制表符用\t 字符串中使用换行符\n 用rs ...

  4. Python编程从入门到实践笔记——变量和简单数据类型

    Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...

  5. python的变量和简单的数据类型

    决定学习python这门语言了,本人资质愚钝,只会把学到的东西记录下来,供自己查漏补缺,也可以分享给和我一样正在学习python语言的人,若在记录中存在什么错误,希望多多批评指正,谢谢. Python ...

  6. Python学习-------变量和简单的数据类型(String)

    1.变量命名和使用 变量命名规则:a.变量名只能包含(字母    数字   下划线),且变量不能以数字开头,例如:变量 s_1(正确),变量1_s(错误) b.变量名不能包含空格,可以使用下划线来间隔 ...

  7. python变量及简单数据类型

    python 目录 python 1.变量 1.变量的定义 2.变量的命名 3. 关键字 4.变量的命名规则 5.变量的类型 5.不同类型变量之间的计算 6.变量的输入 7.变量的格式化输出 8.格式 ...

  8. python的变量与基本数据类型

    今日内容 python多版本共存 python的注释 python的变量与常量 变量的本质 变量的命名规范 python基本数据类型 内容详细 python多版本共存 先将两个版本的python解释器 ...

  9. Python入门 .变量 常量 基础数据类型 用户输入 流程控制语句 小练习题

    # 2.name = input(“>>>”)通过代码来验证name变量是什么数据类型?--str name = input(">>>") pr ...

随机推荐

  1. Python Web框架篇:Django Model基础

    model是关于你的数据的单一的,确定的信息来源. 它包含您正在存储的数据的基本字段和行为.Django通过抽象化的模型层(models)为你的网络应用提供对于数据的结构化处理和操作处理,数据库相关的 ...

  2. 为Lua5.3编写C模块简单示例

    为Lua5.3编写C模块简单示例 一.编译安装Lua5.3 MSVC 命令行安装脚本: @echo off md bin md lib md include cd src cl /c /nologo ...

  3. A Simple Game

    A Simple Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others) Total ...

  4. Python丨Python 性能分析大全

    虽然运行速度慢是 Python 与生俱来的特点,大多数时候我们用 Python 就意味着放弃对性能的追求.但是,就算是用纯 Python 完成同一个任务,老手写出来的代码可能会比菜鸟写的代码块几倍,甚 ...

  5. NHibernate 慎用Session.Merge

    Session.Merge其意思有两个步骤, 一般用法: Session.Merge(obj); 1. 从当前的Session中获取obj对象, 如果未获取到则从数据库获取. 2. 把程序中的obj的 ...

  6. 从零开始搭建Vue组件库——VV-UI

    前言: 前端组件化是当今热议的话题之一,也是我们在开发单页应用经常会碰到的一个问题,现在我们有了功能非常完善的Element-UI.各个大厂也相继宣布开源XXX-UI.但是也会存在一些问题,比如每个公 ...

  7. override和重载的区别

    1.父类:public virtual string ToString(){return "a";}子类:public override string ToString(){ret ...

  8. [转载] 红黑树(Red Black Tree)- 对于 JDK TreeMap的实现

    转载自http://blog.csdn.net/yangjun2/article/details/6542321 介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf B ...

  9. Python之re正则模块

    正则表达式可以帮助我们更好的描述复制的文本格式,可以更好地利用它们对文本数据进行检索.替换.提取和修改操作. http://www.cnblogs.com/huxi/archive/2010/07/0 ...

  10. Webstorm下安装ESLint检测JS代码

    今天配置下Webstorm下面的Eslint, 先看下本地安装的Node,NPM版本,2017-11-23日这个节点最新版本. >node -v v8.9.1 >npm -v 使用Webs ...