当前位置 博文首页 > zy010101博客:Python——变量和基本数据类型
python对于初学者友好的地方就在于,没有一些固定的,格式化的东西需要写上,初学者可以开始自由的写点东西来开始学习python。?下面是我正在听歌的时候,随手写的打印歌词的代码。
song_name = "光阴的故事"
print(song_name)
author = '作词:罗大佑'
print(author)
author = '作曲:罗大佑'
print(author)
author = '演唱:罗大佑'
print(author)
lrc_1 = "春天的花开秋天的风以及冬天的落阳"
print(lrc_1)
lrc_2 = "忧郁的青春年少的我曾经无知的这么想"
print(lrc_2)
他的运行结果如下所示:
代码中的song_name,lrc_1,lrc_2等被称为变量,上面的变量名称都是合法并且合理的,在python中变量名应当是字母,数字,下划线组成的,并且不能以数字开头。这和C语言一样。建议变量名全部小写,单词之间使用下划线分割。
另外一点值得注意,那就是Python3默认支持Unicode编码方式,所以,有时候你会看到有些人的变量名是中文的,这是可以的,但是如果是python程序员,这么干并不太好。如果只是使用python办公,那当然没有问题。例如下面的例子。
姓名 = "张三"
性别 = "男"
年龄 = "24"
print(姓名)
print(性别)
print(年龄)
程序执行结果:
在python中,以引号括起来的都是字符串类型,Python没有单个字符的说法,只有字符串。这点和C语言不一样,需要注意。例如,上面打印歌词的程序中,author变量的赋值都是单引号。这样带来了一些便利的功能,例如下面的例子。
message = '"Python is a good language!"' # 这样就能很方便的打印双引号,而不需要使用转义字符
print(message)
message = "\"Python is a good language!\"" # 使用转义字符也能做的,就是麻烦了一些。
print(message)
程序执行结果:
在程序中,灵活使用单引号和双引号以及转义字符,能让书写程序变得简洁。
在学习其他的东西之前,我们先来学习一下输入和输出。之前使用的print()函数就是常用的输出函数。它负责将内容打印到屏幕上。python内置了输入函数input(),它能将用户的键盘输入进行读取。下面来尝试使用一下。
name = input("Please input your name:")
print("Hello,",name)
执行代码以后,可以看到出现提示?Please input your name:,然后我输入了我的英文名“nicholas zhao si”,输出的结果如下图所示:
通过这个例子,可以知道input函数的参数是作为提醒用户输入的提示内容,这不是最重要的,最重要的是,input函数在python3中读取到的用户输入都是字符串类型。而且print函数可以有多个参数,用逗号隔开即可。仔细观察还能发现,print函数打印两个参数之间会有一个空格。刚才我们输入的名字有点问题,那就是首字母没有大写。不过,python内置了一个函数title可以做到将首字母变成大写,其他字母小写。下面的代码展示了如何使用title。
name = input("Please input your name:")
print("Hello,",name.title()) #将用户输入的每一个单词的首字母变成大写。
执行这段代码,然后它的结果如下图所示:
这个函数,对于我们这样的非字母文字的使用者而言,用到它的频率可能非常低。不过,我们需要注意的是使用它的方式,我们是使用name.title()来使用它的。前面说过,input输入的都是字符串,那么name就是字符串类型,而这个title就是字符串类所提供的方法。所以需要使用name.title来使用它。需要注意的是,title函数没有参数,并且它并没有name本身的值,要想改变name本身的值可以使用下面的方式。
name = input("Please input your name:")
print("Hello,",name.title()) #将用户输入的每一个单词的首字母变成大写。
print("name:",name)
name = name.title() #改变name的值
print("name:",name)
程序运行结果如下图所示:
现在,我们来看我们更常用的函数upper()和lower()函数。
upper()函数能够将所有字母转为大写;而lower()函数则相反,能够将所有字母转为小写。下面这个例子包含了简单的if-else语句,这和C语言的非常类似。
code = input("请输入验证码:X6sQ(不区分大小写)")
if code.upper() == "X6SQ": #如果成立,打印OK
print("OK")
else: #否则,打印NO
print("NO")
运行结果如下所示:
可以看到,我们输入的只要是正确的验证码就没有问题,无论你输入的验证码中的字母是大写还是小写。同理,使用lower()函数也可以很容易做到。代码如下所示:
code = input("请输入验证码:X6sQ(不区分大小写)")
if code.lower() == "x6sq": #如果成立,打印OK
print("OK")
else: #否则,打印NO
print("NO")
有时候,我们需要在字符串中加入变量,然后进行输出。为此,python提供了一种简单的,人性化的方式来完成这件事。即:f字符串。下面是一个例子。
name = input("请输入你的名字:")
out = F" 你好,{name}! " #使用f字符串
print(out)
来看执行结果,结果如下所示:
可以看到在输出的时候花括号内的变量name的值被输出了。f字符串可以使用F(或者f)在字符串外面修饰字符串,然后字符串内部就可以使用{}把变量给包起来,就能成功的将变量的值嵌入到字符串中了。这个功能非常强大,尤其是当你遇到写SQL语句的时候。f其实是?format的简写。需要注意的是,f字符串是python3.6引入的,更早的版本并不支持这个功能。
python还内置了清空空白字符的函数,非常好用。例如下面所示:这个效果在终端下看起来是最明显的。
在代码中输出之后,看起来不是很明显。不过下面这个例子是经过精心设计的,效果看起来还是不错的。
name = "\tNicholas\tZhao\tSi\n"
print(name)
print(name.strip())
print(name.lstrip())
print(name.rstrip())
运行结果如下所示:
打印name本身,可以看到开头有一个制表符,中间各自有一个制表符,最后的换行符也很明显;然后strip函数将开头和末尾的空白字符去除了,所以开头的制表符和末尾和换行符没有了。lstrip将开头的空白字符去除,rstrip将末尾的空白字符去除。这个例子的效果非常显著。不过如果想将改动作用到变量本身就需要使用下面所示的方式。
name = name.strip()
和其他语言一样,python的数字类型也分为整数类型和浮点数类型两种。python的整数类型支持使用+,-,*,/,来完成加减乘除操作。例如:
print(1+2)
print(1-2)
print(1*2)
print(1/2)
print(2/2)
运行结果如下所示:
从结果中可以看到,python的除法得到的是精确的结果,是一个浮点数。而不像C语言,整除的结果依旧是整数,另外注意除数不能为0。python还支持乘方运算符“**”。如下所示:
print(2**10)
print(2*3.5)
输出结果如下所示:
同时,注意到整数和浮点数的运算结果,也必定是浮点数。当然了,无论是加减乘除还是什么运算,只要操作数中有一个浮点数,那么结果必定是一个浮点数。
python的浮点数同样也支持上面的所有操作。不过和其他语言的一样的是,浮点数总是不能够精确的表示。如下所示:
print(2.1**2.2)
print(3*0.1)
运行结果如下所示:
python还非常人性化的提供了大数识别的操作。可以使用下划线给数字分组,来使得数据很容易的辨识出来。这对程序员真的太友好了。如下所示:
print(123_0000_0000) # 中国人习惯4位一组
print(123_000_000) # 外国人习惯3位一组
运行结果如下所示:
程序员阅读程序的时候很方便,打印的时候也不会有下划线,真是太贴心了。python在存储数字的时候会将下划线给去掉。需要注意的是,python3.6以上的版本才支持。
python还支持同时给多个变量赋值。例如:
i, j, k = 1, 2, 3
print(i, j, k)
运行结果如下所示:
从这些方面来说,python是非常人性化的,非常伟大的程序设计语言。
稍微有些遗憾的是,python没有内置常量类型,Python 程序员会使用全大写来指出应将某个变量视为常量。例如:
MAX_VALUE = 500
哦,忘记了一些事情,那就是python支持整除运算,使用运算符//。下面我们来展示一下。
print(32//4)
print(32/4)
运行结果如下所示:
还有一件事情,那就是注释,我前面的代码已经在使用了,那就是#后面的内容就是注释。python不支持多行注释。不过python有三引号,三引号括起来的内容也是字符串,不过三引号能够跨行,所以有时候也使用三引号括起来一段文本,当作注释。例如:
"""
这是一段注释
里面写的都是废话
他对你理解这段代码没有任何帮助
"""
关于优秀的python程序的编写指南,其实隐藏在一个模块中,你只需要在交互式终端输入import this,就能看到python之禅。如下所示:
?