今天是2020年2月11日,阴转小雨,8~11℃
昨晚又失眠了,翻来覆去难以入睡,最后刷了一晚上手机,6点才勉强睡着。一觉睡到了中午,头昏脑胀之余感慨自己又浪费了好多时间。以后一定得少熬夜,调整生活状态。
一、变量
1、Python中的变量
Python中变量的概念与其它语言并无不同,都用于储存或表示值,但有如下3个需要注意的特点:
● 变量是对对象的引用。
当初始化对象时,Python将分别为对象和变量分配内存,再令对象指向变量,完成引用的链接。
进行验证:
#简单数据类型
a = 1
b = a
b = b + 1
print(a)
print(b)
#复杂类型
c = ["1"]
d = c
d.append("2")
print(c)
print(d)
输出分别为:1 , 2 , [‘1’, ‘2’] , [‘1’, ‘2’]
由测试结果可以看出:
1)在简单数据类型下,变量采用值传递,赋值时将复制一份对象,此时引用的概念被弱化;
2)在复杂类型下(如列表),变量采用引用传递,将不同变量绑定在同一对象上,这也验证了Python中变量均为引用。
这一特点与Java,C#相似。
● 变量没有类型,类型属于对象。
变量本身不具有类型,也无需在使用时声明类型。类型实际上属于对象,在对象创建时,除了值以外,还分配了类型标志符的空间,变量当前的类型是受当前指向的对象决定的。
进行验证:
#用同一变量指向不同类型的对象
a = 1
print(a)
a = 2.0
print(a)
a = "Alex"
print(a)
a = ["3","4"]
print(a)
输出为:1 , 2.0 , Alex , [‘3’, ‘4’]
这一测试结果也验证了变量没有类型的特点,也是Python被认为是动态类型的原因。
● 变量初次出现的语句是对变量的定义。
变量名只有在第一次出现才是定义变量。变量名再次出现,不是定义变量,而是直接使用之前定义的变量。
2、命名规则
Python变量在命名时需要遵循以下规则:
1) 变量名只能包含字母、数字和下划线。可以由字母或下划线开头,但不能以数字开头。
2) 变量名不能包含空格,但可以使用下划线分割单词。
3) 不要将Python关键字和函数名用作变量名。
实际上,变量名可以使用已有函数名,但这会将已有函数覆盖,因此也不应使用。
4) 变量名应该既简短,又具有描述性。
5) 慎用慎用小写字母l和大写字母O。
6) 避免在变量名中使用大写字母。
Python中,普通变量名一般使用下划线法,即用下划线将小写单词分割的方法。
二、简单数据类型
Python定义了一些标准数据类型,其中字符串(String)和数字(Numbers)是简单数据类型。
1、字符串
字符串就是一系列字符。在Python中,用引号括起的都是字符串,不论双引号还是单引号,但需要引号匹配。
好处便是能在字符串中相对灵活的使用引号,省去转义字符的麻烦。如输出语句:I told him, “This is a string.”
Python:
print('I told him, "This is a string."')
C:
printf("I told him, \"This is a string.\"");
下面是一些字符串常用的基本操作:
● 使用方法修改字符串的大小写
String类型提供了三个方法来修改字符串大大小写:
str1.title() #将各单词首字母变为大写
str1.upper() #将所有英文字符变为大写
str1.lower() #将所有英文字符变为小写
这三个方法均返回一个新字符串,而不修改原字符串
● 合并字符串
如果想在Python进行字符串的合并操作,只需简单使用“+”运算符。
first_name = "Alex"
last_name = "Tu"
full_name = first_name + " " + last_name #合并字符串
print(full_name)
输出结果为:Alex Tu
● 使用制表符或换行符来添加空白
可以使用’\t’和’\n’来为Python中的字符串换行或添加空白。
print("2020/02/11\tOvercast\t8-11℃\nNice to meet you!")
输出:
2020/02/11 Overcast 8-11℃
Nice to meet you!
● 删除空白
String类型提供了三种方法来删除空白:
str1.rstrip() #删除末尾空白
str1.lstrip() #删除开头空白
str1.strip() #删除两端空白
这三个方法均返回一个新字符串,而不修改原字符串
2、数字
Python的数字类型有整型int,浮点型float,布尔型bool和复数型complex。下面是int和float类型的基本操作方式。
● 数字运算符
int和float类型均支持’ + ‘,’ - ‘,’ * ‘,’ / ‘四则运算,且还可以用’ ** '进行乘方运算,复合运算中还支持运算优先级和括号修改优先级。
#整型运算
print(2 + 3)
print(3 - 2)
print(2 * 3)
print(3 / 2)
print(2 ** 3)
print(2 + 3 * 10 ** 2)
#浮点型运算
print(0.1 + 0.1)
print(0.2 - 0.1)
print(0.2 * 2)
print(0.2 / 2)
print(0.5 ** 2)
输出为:5 , 1 , 6 , 1.5 , 8 , 302 , 0.2 , 0.1 , 0.4 , 0.1 , 0.25
不同于C/C++,Python在处理 3 / 2 时并未舍去小数部分,而是将结果转成了浮点型。
● str函数
当需要将数字的值写入字符串中时,可能引发类型错误。这时需要使用str函数来进行类型转换。
例如输出: Today is 2020 / 2 / 11
print("Today is " + str(2020) + " / " + str(2) + " / " + str(11))
用我们所不熟悉的东西作为评判的标尺时,我们便不再有真正公正的原则作为指导。