一、为什么要有数据类类型?
1. 什么是数据?
x = 10 , 10 就是我们要存储的数据,数据是对信息的描述
2. 为什么要有数据类型?
对于人类来说,看到一个数字,大脑就知道是数值类型,看到一串文字,就知道就是字符串类型。
但计算机不知道,因引需要定义数据类型,明确地告知计算机,各种数据类型的规则 :
比始:用引号引起来的,就是字符串类型; 有小数点的数字,就是浮点类型
3. 数据类型
数字 int:用于计数、计算、运算等。1,3 ,5,100.......
字符串 str: 用于少量数据的存储,便于操作
布尔 bool: True,False, 两种状态,机器反馈给用户的对,错
列表 list: [ 'alex',123,('123',456),[ 'aa','bb' ]..... ] 大量的数据,各种数据类型,便于操作
元组 tuple: (1,'chris','name','sex') 只读列表
字典 dict: {'name':'chris','sex':'male','age':16,'job':'engineer'} 大量的关联数据
集合 set: {‘a','b',...} 关系测试。 集合也是花括号,但是存储的不是键值对。
二、数据类型之间的转化
int ----> str str(int)
str ----> int in(str) :前提条件,字符串中的字符都是数字,可以用str.isdigit()判断
int ---> bool 非零即True,零即False
bool ---> int True即1, False即为0
str ---> bool 非空字符串即True,空字符串即False
bool ---> str 'True' 'False'
name = input("请输入大名")
if name:
print(666)
else:
print("无内容")
三、字符串操作
capitalize() : 使字符串首字母大写,其余字母小写
print("78abDefE89".capitalize()) # 输出结果: 78abdefe89 print("r78abDefE89".capitalize()) # 输出结果: R78abdefe89
strip()
s = input("请输入你想输入的字符串").strip() # 养成输入加strip()方法习惯,
format() 的三种玩法,格式化输出
name = input("input your name:").strip() age = input("iput your age: ").strip() gender = input("input your gender:") print('我叫{},今年我{}岁了,我的性别是{}。'.format(name,age,gender)) # 必段一一对应 print('我叫{0},今年我{2}岁了,我的性别是{1},我还是叫{0}。'.format(name,gender,age)) # 按照索引来取值 print('我叫{name},今年我{age}岁了,我的性别是{gender},我还是叫{name}。'.format(name=name,gender=gender,age=age)) # 按照关键字来取值 输出结果如下: input your name:chris iput your age: 18 input your gender:male 我叫chris,今年我18岁了,我的性别是male。 我叫chris,今年我18岁了,我的性别是male,我还是叫chris。 我叫chris,今年我18岁了,我的性别是male,我还是叫chris。 Process finished with exit code 0
int <---> bool :
非0 True 0 False
True 1 False 0
int <---> str
str(123)
int('123') :字符串必须全部是数字组成
bool<---> str
非空 True 空字符串 False
str(True)
s1 = 'alexsb'
1.索引
s1[0]
2.切片 顾头不顾腚
s1[:4]
s1[:]
3.切片+步长
s1[::2]
s1[100:] ?
操作方法:
upper lower 变大写,变小写 验证码
strip:默认去除去除首位的空格,换行符,制表符
strip(元素)
lstrip()
rstrip()
startswith endswith 判断以...开头,结尾
find 通过元素找索引,找不到返回-1
index 通过元素找索引,找不到报错
replace 替换 (old,new,次数)
format
:'{}{}{}'.format('alex','man',1000)
:'{0}{1}{2}'.format('alex','man',1000)
:'{name}{age}{sex}'.format(name='alex',sex='man',age=1000)
count:查询次数
join:
'_'.join(interable)
split:
'alex wusir'.split() ---> ['alex','wusir']
可以指定分隔符。
可以指定分割次数。
' alex wusir'.split('') ---> ['','alex','wusir']
title: 每个非字母隔开的内容的首字母大写
len(): 统计字符串的字符的个数
isdigit(): 判断字符串是否全部有数字组成
isalpha():全部由字母组成
isalnum(): 全部由字母或数字组成。
swapcase():大小写反转
center():居中可设置填充物。
capitalize() 首字母大写,其余的变成小写。
for 循环
slogan = 'abcdef'# 输出asb,bsb,csb,...fsb is_first = True # 设置第一次进入循环标志位 msg = '' for item in slogan: if is_first: msg += item is_first = False else: msg += 'sb ' + item print(msg + "sb") 输出结果: C:Python36python.exe C:/Users/jiayong/PycharmProjects/knight_schema/day04/01.py asb bsb csb dsb esb fsb Process finished with exit code 0
''' 列表,按照索引取元素的话,元素什么类型,返回的值就是什么类型; 列表,按照切片取元素的话,返回的还是列表 ''' list1 = ["chris",123,"smuice",[1,3,"cc"]] print(list1[0],type(list1[0])) # 输出结果:chris <class 'str'> print(list1[-1],type(list1[-1])) #输出结果: [1, 3, 'cc'] <class 'list'> print(list1[0:1],type(list1[0:1])) # 输出结果:['chris'] <class 'list'>