变量及简单数据类型

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中,我们对字符串的操作使用比较多,现将字符串的常规总结一下:

 1 name = "my \tname is {name} and i am {year} old"
 2 
 3 print(name.capitalize())     # 首字母大写
 4 print(name.count("y"))       # 统计字母出现的次数
 5 print(name.center(50,"-"))   #居中打印50个字符,不够的在两端补充“-”
 6 print(name.endswith("un"))   #判断字符串以什么结尾,若结果为真,返回True,否则返回False
 7 print(name.expandtabs(tabsize=20)) # 将tab键转换为多少个字符,即打印多个tab字符
 8 print(name.find("name"))  #返回字符串所在的位置,即下标、索引
 9 print(name[name.find(name):9]) #字符串切片
10 print(name.format(name='yun',year=26)) # 字符串格式化输出一,用等号赋值
11 print(name.format_map({'name':'yun','year':'26'})) # 字符串格式化输出,用字典赋值
12 print(name.index("name")) # 根据某字符查找其在字符串中的索引,即下标
13 print(name.isalnum()) # 是否包含阿拉伯数据,单字符中不能有特殊符号
14 print('abc123'.isalnum())
15 print('abc123\t'.isalnum()) # 是否包含阿拉伯数据,单字符中不能有特殊符号
16 print('abA'.isdecimal()) # 判断是否为数字,是返回True,否则返回False
17 print('123'.isdecimal())
18 print('1A'.isdigit()) # 判断是不是数字
19 print('a1A'.isidentifier()) #判断是不是一个合法的标识符
20 print('s 1A'.isnumeric()) #判断是不是一个数字
21 print('33'.isnumeric())
22 print('My Name Is'.istitle()) #判断首字母是否大写
23 print('my Name Is'.istitle()) #判断首字母是否大写
24 print('My name is'.isprintable()) # tty file,drive file 基本不可以打印
25 print('My Name Is'.isupper()) # 判断是否大写
26 print('AAAAA'.isupper()) # 判断是否大写
27 print('+'.join(['a','b','c'])) # 用什么连接起来
28 print(''.join(['a','b','c'])) # 用什么连接起来
29 print(''.join(['a','b','c'])) # 用什么连接起来
30 print(name.ljust(50,'*')) # 打印长度为50的字符串,不够在右边用”*“填充
31 print(name.rjust(50,'-'))# 打印长度为50的字符串,不够在左边用”-“填充
32 print('Yun'.lower()) # 转为小写
33 print('Yun'.upper()) # 转为大写
34 print('\nYun')
35 print('\nYun'.lstrip()) # 去右边的空格
36 print('Yun\n'.rstrip()) #   去左边的空格
37 print('\nYun\n'.strip()) # 去掉左右空格
38 print('   Yun\n'.strip())
39 p =  str.maketrans("abcdef",'123456')  # 对应替换 ,前后个数得一样多
40 print("Yun Qtian".translate(p))
41 print('Yun'.replace('Y','y')) # 字符替换
42 print('Yun Qtian'.rfind('t')) # 从左向右,找到该字符所在的位置,并返回该位置
43 print('Yun Qtian'.split('Q')) # 以某字符为分割符,分成多个元素
44 print('Yun Qtian'.split(' ')) # 以某字符为分割符,分成多个元素
45 print('1+2+3+4'.split('+'))
46 print('1+2\n+3+4'.splitlines()) # 以空格分割
47 print('Yun Qtian'.swapcase()) # 大小写互换
48 print('yun qtian'.title()) # 首字母大写
49 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 该编写什么样的注释

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

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

 

 

 

 

 

posted @ 2017-12-05 01:13  晴天云  阅读(585)  评论(0编辑  收藏  举报