数字和字符串类型
数字 (int,float )
在python3中数字类型只有整形,浮点型,复数。而复数在平时的编程中几乎用不到所以我们只要掌握整形和浮点型即可。(长整形在python3中取消了统一用整形,所以在python3中整形长度无限制)
整型int:年级,年纪,等级,身份证号,qq号,手机号等
ps:
level=10
浮点型float:身高,体重,薪资,温度,价格
ps:
height=1.81
salary=3.3
n = 12
f = 1.5
print(type(n)) # int即为整形
print(type(f)) #float即为浮点型
#科学计数法在python中的应用:(10用e代替)
print(1.3e-3) #1.3e-3 --> 0.0013
print(1.3e3) #1.3e3 --> 1300.0
了解一下复数
>>> x = 1-2j
>>> print(x.real)
1.0
>>> print(x.imag)
-2.0
数字类型的特点:
1、只能存放一个值
2、一经定义,不可更改
3、直接访问
字符串类型
包含在引号(单,双,三)里面,由一串字符组成
用途(描述性的数据):姓名,性别,地址,学历,密码等。
见代码:
s1 = 'tony'
s2 = "tony"
s3 = '''tony'''
s4 = """tony"""
print(type(s1))
print(type(s2))
print(type(s3))
print(type(s4))
<class 'str'>#均为str字符串类型
取值:
首先要明确,字符串整体就是一个值,只不过特殊之处在于:python中没有字符类型,字符串是由一串字符组成,想取出字符串中的字符,也可以按照下标的方式取得
>>> name = 'tony'
>>> name
'tony'
>>> name[0] # 索引从0开 取得第一个字符
't'
>>> name[1]
'o'
>>> name[2]
'n'
>>> name[:]
'tony'
>>>
##############################################
字符串拼接:
msg1='hello'
msg2=' world'
字符串中的+的用法:
msg1 + msg2
'hello world'
res=msg1 + msg2
print(res)
hello world
字符串中的*的用法:
msg1*3
'hellohellohello'
注意:字符串不能再用其它符号。
字符串常用方法全解:
#!/usr/bin/env python3字符串常用
# _*_ coding:utf-8 _*_
# @Time : 2017/08/29
# @Author : tony
# @File : str_
# @Version : 1.0
# 移除两边的空格过字符
name = ' tony***** '
print(name)
print(name.strip()) # str.strip() 默认移除多出的空格
print(name.strip('*')) # strip() 移除传入的参数,默认就是上面的空格
# 判断字符串以什么结尾或开头
name1 = 'tony'
print(name1.startswith('t')) # 返回布尔值 True
print(name1.endswith(' ')) # 返回 False
# 替换
print(name1.replace('t','T')) # str.replace(old,new,coun) Tony 第一个参数要替换的值,第二个替换的值,第三个替换的次数
# 格式化字符串
user_info = 'name :{0} age: {1} TEL:{2}'.format('tony',28,'185****176') # 按照位置
print(user_info) # name :tony age: 28 TEL:185****176
user_info = 'name :{x} age: {y} TEL:{z}'.format(x = 'tony',y = 28,z = '185****176') # 按关键字
print(user_info) # name :tony age: 28 TEL:185****176
# 索引
print(name1.find('y')) # return 位置 3
print(name1.find('l')) # 找不到 return -1
# 查索引
print(name1.index('o')) # 返回索引 1
print(name1[1]) # return 'o'
print(name1[name1.index('o')]) # index 返回字符的索引.... o
# 字符串统计
name2 = 'toooooony'
print(name2.count('o')) # 字母 o 出现的次数 6
print(name2.count('o',0,4)) # 再一个范围内统计 3
# 切分
print(user_info.split()) # 默认以空格分隔,return list ['name', ':tony', 'age:', '28', 'TEL:185****176']
print(user_info.split(':')) # 以传入的参数 : 为飞隔符 切分
# ['name ', 'tony age', ' 28 TEL', '185****176']
print(user_info.split(':',2)) # 以传入的参数 : 为飞隔符 切分 ,第二个参数决定 几分隔成 部分
# join 链接字符串数组
name3 =""
print(name3.join(['tony','say','hello','Python'])) # 可迭代对象 must str 列表包起来 tonysayhelloPython
print(name3.join(('tony','say','hello','Python'))) # 可迭代对象 must str tuple 包起来 tonysayhelloPython
#center,ljust,rjust,rfill 对其格式
name = "Tony"
print(name.center(30,"-")) # -------------Tony-------------
print(name.ljust(30,"*")) # Tony**************************
print(name.rjust(30,"*")) # **************************Tony
print(name.zfill(50)) #用0填充 0000000000000000000000000000000000000000000000Tony
#expandtabs 替换制表符“\t' 的字符数
name = 'Hello\nTony\nPythoner'
print(name.expandtabs())
# Hello
# Tony
# Pythoner
# 所有字母大写,小写
name = 'tony'
print(name.upper()) # 都大写 TONY
print(name.upper().lower()) # 都小写 tony
print(name.capitalize()) # 首字母大 Tony
name = 'toNY'
print(name.swapcase()) # 大小写反转 TOny
user_info='name:tony'
print(user_info.title()) # 每个单词的首字母大写
print(user_info.istitle()) # 判断首字母是否大写 ,return False or True
####### 取值及切片
name = "hello python"
print(name[0]) #h
print(name[6]) #p
#print(name[20]) 报错 IndexError: string index out of range
print(name[-1]) #n
print(name[-3]) #h
print(name[1:3]) #el 切片
print(name[1:5]) #ello 切片
print(name[1:5:3]) #eo 切片 3为步长
# 判断字符串可否转成数字
'''
age = input('input you age >>>')
if age.isdigit():
new_age = int(age)
print(new_age,type(new_age))
else:
print('you must input number')
'''
#判断是否空格,(必须全是空格)
name = " "
print(name.isspace()) # return True of False
name = 'tony123'
print(name.isalnum()) # 字符串是否有字母和数字组合 return bool
print(name.isalpha()) # 是否只有字母 return bool
习题
#!/usr/bin/env python3View Code
# _*_ coding:utf-8 _*_
# @Time : 2017/08/29
# @Author : tony
# @File : str_lianxi
# @Version : 1.0
# 写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
# 1 移除 name 变量对应的值两边的空格,并输出处理结果
print(name.strip())
# 2 判断 name 变量对应的值是否以 "al" 开头,并输出结果
print(name.startswith('al'))
# 3 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
print(name.endswith('X'))
# 4 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
print(name.replace('l','p'))
# 5 将 name 变量对应的值根据 “l” 分割,并输出结果。
print(name.split('l'))
# 6 将 name 变量对应的值变大写,并输出结果
print(name.swapcase())
print(name.upper())
# 7 将 name 变量对应的值变小写,并输出结
print(name.swapcase().swapcase())
print(name.lower())
# 8 请输出 name 变量对应的值的第 2 个字符?
print(name[1])
# 9 请输出 name 变量对应的值的前 3 个字符?
print(name[0:3])
# 10 请输出 name 变量对应的值的后 2 个字符?
print(name[-2:])
# 11 请输出 name 变量对应的值中 “e” 所在索引位置?
print(name.index('e'))
# 12 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo
msg = 'oldboy'
print(msg[0:-1]) #oldbo
# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
name = " aleX"
# 1) 移除 name 变量对应的值两边的空格,并输出处理结果
# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果
# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
# 6) 将 name 变量对应的值变大写,并输出结果
# 7) 将 name 变量对应的值变小写,并输出结果
# 8) 请输出 name 变量对应的值的第 2 个字符?
# 9) 请输出 name 变量对应的值的前 3 个字符?
# 10) 请输出 name 变量对应的值的后 2 个字符?
# 11) 请输出 name 变量对应的值中 “e” 所在索引位置?
# 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 old
# 等