基本数据类型
(今天只聊聊数字数据类型和字符串)
• 数据类型指的就是变量所引用的对象的类型。
1、变量,通过变量指针引用对象,变量指针指向具体对象的内存空间,取对象的值。
2、对象,类型已知,每个对象都包含一个头部信息,头部信息里有类型标识符。
变量名是没有类型的,类型属于对象(因为变量引用对象,所以类型随对象),变量引用什么类型的对象,变量就是什么类型的。细品就有那么一种嫁鸡随鸡,嫁狗随狗的感觉。
比如:a=10,因为10是整数,所以是整数类型(int)
a=10.0,因为10.0是浮点数,所以是浮点型(float)
a=True或者=False,这就是布尔值类型(bool),这个类型只有两个值True,False
布尔值类型(bool)算是整型(int)的子集。
通过这个命令来看,True就是整型数字1,False就是整型数字0。
有个特别的大兄弟需要说一下——None(Nonetype)。它是一个特殊 Python 对象,它只有一个数值就是None 也就是空值。
如果a='hello,python',那么这就是字符串类型了(str)。什么是字符串呢?字符串是由数字、字母、下划线组成的一串字符。在Python中用一对双引号或者一对单引号包裹的内容就是字符串。
那么问题来了,如果在一对双引号或者一对单引号中,我另外需要用到双引号或者单引号,怎么办呢?
可以在一对双引号里用单引号,或者是在一对单引号里用双引号,如:a = "what's you name?";也可以用转义字符,那么问题又来了,什么是转义字符呢?转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。所以上面同样的一句话也可以写成 a = 'what\'s you name?'。常用的转义字符有\n,\t。
上面是用英文的字符串内容举例的,但是咱毕竟是中国人呀,肯定会使用到中文的,尤其是用到中国诗词的时候,它写出来是有格式的,像白居易的《长恨歌》《琵琶行》又长,用一般的一对双引号或者一对单引号就显得很麻烦,每一句后面都要加换行符,没有效率。这个时候长字符串就应运而生了,那什么是长字符串呢?长字符串又叫做文档字符串,我们使用三重引号来表示一个长字符串’’’ ‘’’,三重引号可以换行,并且会保留字符串中的格式。如:
a = '''
昔人已乘黄鹤去,此地空余黄鹤楼。
黄鹤一去不复返,白云千载空悠悠。
晴川历历汉阳树,芳草萋萋鹦鹉洲。
日暮乡关何处是?烟波江上使人愁。
'''
print(a)
这样打印出来的效率就是杠杠的。
除了上面说的,字符串还有一些好玩的地方,比如格式化字符串。介绍四种格式化字符串的方法。
第一种:拼串
print('你好,' + 'Leslie')
第二种:参数传递
a = '你好,'
b = 'Leslie'
print(a + b)
第三种:占位符
c = '特朗普,%s%d%s' % ('每天骂你',3000,'次')
print(c)
其中: %s是字符串占位;%f是浮点数占位;%d是整数占位
第四种:f'{变量}'或者str.format()
d = '特朗普'
print(f'去你大爷的,{d}')
# 下面的写法也是一样的
print('去你大爷的,{}'.format(d))
除了格式化字符串,字符串还有一些其他的操作。如:
• max() 最大值
• min() 最小值
• len() 字符串的长度
• split()分割字符串
• join()拼接字符串
•find()查找字符串
• replace() 替换字符串
• partition() 把字符串分割为三部分
去空格
• s.strip() 左右两边去空格
• s.lstrip() 去左边空格
• s.rstrip() 去右边空格
字符串大小写
• s.upper() 全部大写
• s.lower() 全部小写
• s.isupper() 判断是不是大写
• s.islower() 判断是不是小写
运行结果如下:
自己动手敲一下,再和我这边对应一下,你就会了然于胸。看一百遍,不如自己动手敲一遍。
既然都开始动手敲了,就再做两道练习。
练习
1、a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
第一种方法:
a , b = 6 , 8
a , b= 8 ,6
print(a,b)
第二种方法:
a , b = 6 , 8
a , b= b ,a
print(a,b)
在这个代码里,是从上往下执行,所以a,b变量的值是看最后执行的赋值
2、设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入,打印出字符串长度,使用切片逆序打印出字符串。
3、要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入。要求为:用户名长度6-20,用户名必须以字母开头;密码长度至少6位,不能为纯数字,不能有空格。