python数据类型-字符串

基本数据类型

python的基本数据类型如下:

1. int ==> 整数. 主要用来进行数学运算
2. str ==> 字符串, 可以保存少量数据并进行相应的操作
3. bool==>判断真假, True, False
4. list==> 存储大量数据.用[ ]表示
5. tuple=> 元组, 不可以发生改变 用( )表示
6. dict==> 字典, 保存键值对, 一样可以保存大量数据
7. set==> 集合, 保存大量数据. 不可以重复. 其实就是不保存value的dict

二. 整数(int)
在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型. 在python3中不存在long类型

整数可以进行的操作:
bit_length(). 计算整数在内存中占用的二进制码的长度

a = 5
b = type(a)
s = a.bit_length()
print(s)

三. 布尔值(bool)

取值只有True, False. bool值没有操作.

关于不同的类型之前的转换问题,

str ----> int

int(str)

int ----> str 

str(int)

bool ----> str

str(bool)

bool ---> int 

int(True)  这个值为1

int(False) 这个值为0

str(bool)

str -----> bool

bool(str)   这里注意只有空字符是False 其他字符是True  举例""  这种就是false ,或者s = None 这个也为false   

另外关于这里空为false的问题,不止字符串,空元组,空列表都是false

如bool([]) ------> False

特点: 空:False .非空:True

int -----> bool 

bool(int)  这里注意的是0是False,其他值为True   

(True 和1的效率问题:  1的效率高.)

示例:

while 1:
    print("哈哈")

经典例题:

循环输入用户名,当用户输入enter键时,跳出程序.

while True:
    name = input("请输入用户的名字:")
    if not name:
        break
    else:
        print(name)

四.  字符串

索引     (字符串可以根据索引来取字符串里面的值)

示例:

s = "abcdefghijk"
print(s[0])
print(s[5])
print(s[-1])   #倒数第一个
print(s[-5])   #倒数第五个

这里要注意的是:

正向是从0开始,反向是从-1开始

切片  (通过下标的索引来截取字符串的部分内容)

示例:

# s = "我想吃切糕.切糕没有芝麻好吃!"
# print(s[2:4])  ## 切片. 顾头不顾腚. 前面的能取到. 后面的取不到
# print(s[4:1])   ## 顺序是从左往右切
# print(s[5:6])  # 把.给切出来
# print(s[:6])  #从头开始切
# print(s[6:])  #切到末尾
# print(s[:]) #切取全部
# print(s[6:99])#如果右边的数大于字符长度,那么切出右边全部.
# print(s[-5:])#可以倒数,然后到最后

  

切片也可以设置步长,跳着切.

示例如下;

s = "abcdef,ghijklmn"

print(s[1:4:2])  #按步长来切
print(s[-8:-1:2])  #也可以倒着切的
print(s[-1:-5:-1])  #反着取字符

print(s[8:1:-1])  #反着切数据
print(s[8:1:-2])  #按步长反着切

一些常用函数

s.capitalize()  单词首字符大写,不支持中文.如果第一个单词里面有非首字母大写,那么这个大写会被改成小写.也就是单词只能首字母大写.

s = "aleX and wusir gaoji"
print(s.capitalize())  #第一个单词字母大写,如果第一个单词非第一个字符大写,那么这个会改为小写的.另外,这个只支持英文,不支持中文.

s.title()  每个单词的首字母大写,而区分每个单词方式是通过特殊字符或者空格.这里中文也算特殊字符的

s = "aleX_and wusir gaoji"
print(s.title())  #title是每个单词都是首字母大写.而区分单词是通过空格,或者特殊字符来区分的.

  

upper()  所有字母大写

lower()所有字母小写

name = "taiBai"
print(name.upper())  # 把每个字母都变成大写
print(name.lower())  # 把每个字母都变成小写

#验证码示例
code = "Fattr"
re_code = input("请输入您的验证码")
if code.upper()  == re_code.upper():
    print("您输入的验证码是对的!")
else:
    print("您输入的验证码是错误的")
swapcase()  大小变小写,小写变大写.
示例如下:
s = "alexAndEggonAndRiTian"
print(s.swapcase())

center(num,"")把字符拉长到num这个长度,然后把字符置中

示例:

s = "alex"
print(s.center(10,"*"))

#如果num是奇数的话,那边先填充左边,
print(s.center(15,"*"))

  

expandtabs()这个函数主要是把tab占位转为空格占位

示例

s = "al	wusir"
print(s)
print(s.expandtabs())

strip()去除两边的空格

lstriip()去除左边的空格

rstrip()去除右边的空格

strip("s")去除两边的s字符,

示例如下:

s = "    leon      elon. roy, gary"
print(s.strip())  #去除两边的空格
print(s.lstrip()) #去除左边的空格
print(s.rstrip()) #去除右边的空格
print(s.strip("gary"))

replace("","")把第一个字符串替换成第二个字符串

示例:

s = "alex,wusir,taibai,eggon"
print(s.replace(",","_"))

split()  #字符串切割,

示例如下:

s = "leon_ron_ben_roy_alex"
print(s.split("_"))

下面是一些特殊用法

示例:

s = "leonronbenroyalex"
print(s.split("leonronbenroyalex"))  #如果切的刀和字符串是一样的,那么最后会生成一个列表,里面有两个空元素
print(s.split("马云"))  # 如果不存在这个字符的话,那么会列表返回这个字符串.
print(s.split(""))#这种会报错

split()可以传入切的次数.用法是这样的split("字符",2)

示例:

s = "leonronbenroyalex"#
print(s.split("leonronbenroyalex"))  #如果切的刀和字符串是一样的,那么最后会生成一个列表,里面有两个空元素
print(s.split("马云"))  # 如果不存在这个字符的话,那么会列表返回这个字符串.
# print(s.split(""))#这种会报错
print(s.split("ro",1)) #后面的数字表示切几刀

split()切的刀如果是在开始或者结尾,那这生成的列表会产生空字符,这种如果是在前面切的,那么会在前面产生空元素.

在开头和结尾如果出现了你的刀. 一定会出现空字符串

示例

s = "leonronbenroyalex"#
print(s.split("leonronbenroyalex"))  #如果切的刀和字符串是一样的,那么最后会生成一个列表,里面有两个空元素
print(s.split("马云"))  # 如果不存在这个字符的话,那么会列表返回这个字符串.
# print(s.split(""))#这种会报错
print(s.split("ro",1)) #后面的数字表示切几刀
print(s.split("leo"))
print(s.split("lex"))

格式化输出 #这里主要用format来生成

name = 133
name2 = 24
print("{}还帅,{}信吗?".format(name,name2))   #这是标准用法
print("{1}很帅,{0}信吗?".format(name,name2))  #这里可以指定顺序
print("{person}很帅,{person1}信吗?".format(person=name2,person1=name)) #这里可以传入变量,然后赋值的

cout("s")这个是计算字符串中s出现的次数

示例:

s = "alex wusir taibai 女神"
print(s.count("al"))

find("s") 查找字符串中是否有s,如果有的话,返回这个字符的索引,没有的话,返回-1

示例:

s = "alex wusir taibai 女神"
print(s.find("dd"))

index("s") #index是求s在字符串中的索引号是多少,如果没有的话报错

s = "alex wusir taibai 女神"
print(s.index("tai"))

条件判断

startswith()和endswith()判断是字符串是否以括号中的内容开始的,如果是的.就是True如果不是False

s = "alex wusir taibai 女神"
print(s.endswith("alex"))

isalnum()#判断是否是数字和字母

isdigit() #判断是否是数字

isalpha()#判断是否是字母

s = "sddd女神"
print(s.isalnum())

判断字符串的长度

len()  #这个注意,是系统内置函数,调用方法和print一样

s = "123"

len(s)

迭代

for w in s :

  代码块

示例

#计算s这个字符串有多少个数字
s ="I am sylar, I'm 14 years old, I have 2 dogs!"
count= 0
for w in s:
    if w.isdigit() :
        count += 1

print(count)

关于判断str是否是小数的示例代码 :

str = "-13.23"
str = str.replace("-","")
if str.startswith(".") or str.endswith(".") or not str.count(".") == 1:
    print("不是小数")
elif str.count(".") == 1 :
    str = str.replace(".","")
    if str.isdigit():
        print("str是小数")
    else:
        print("不是小数")
原文地址:https://www.cnblogs.com/ahliucong/p/9123551.html