基本数据类型 (int , bool, str)

Posted chyxlj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本数据类型 (int , bool, str)相关的知识,希望对你有一定的参考价值。

1.基本数据类型
    1 int 整数
    2 str 字符串  ‘, ‘‘, ‘‘‘, """, 字符串一般不存储大量数据 ,不容易操作
    3 bool 布尔值, Ture,False
    4 list    []    列表([]里放列表的值)
                list["sylar",‘太白‘,1,Ture,(),{}]
    5 tuple ()  元组    只能读取 不能修改
    6 dict {}    字典  查找比较快  key:value,一次存两个数据 一对一对存
    7 set {}  集合  一次存一个 不能重复 ,只存Key  比较少见
 
2    int        
a=5   #0000 0101
print(a.bit_length() )

#输出:3

 

 
3    Bool
str =>int    int(str)
int =>str    str(int)
数字准换成bool值    如果数字是0转换成False,如果数字不是0转换成True
a=0
print(bool(a))

#输出 False

 

在while循环中 True 和 1 的效率问题  :1的效率高 (计算机无需转换成ASCII码直接执行)
while1:   #1 ==True
    print("hello")

 

bool 转换成int
a=0
print(int(True))
#输出 1
print(int(False))
#输出 0

 

str转换成bool ( 非零转换成True    零准换成False )
a="abc"
print(bool(a))
#输出 True
a="123"
print(bool(a))
#输出 True
a=""          #"" 这个是空字符
print(bool(a))
#输出 False
a=" "          #" " 这个是空格
print(bool(a))
#输出 True
a=None        #  这个是真的空
print(bool(a))
#输出 False
a="None"       #这个是字符串  "None"
print(bool(a))
#输出 True

 

 
向系统中录入员工信息,不停地录入,输出回车退出
while 1:            # while 1 和while True 一个意思
    name=input("请输入用户信息:")
    if name != "":
        print("新员工信息:{}".format(name))
    else:
        break
改写:
while 1:
    name=input("请输入用户信息")
    if not name:   # 判断 如果不正确
        break
    else:
        print("新员工信息:"+name)     

 

   
4 str
1.索引    索引就是下标  下标 从 0 开始
print([""])
#  0 1 2 3 456 7 8 9101112  # 正向
#  0              ...-2-1
s="小老板很帅,他比别人都帅."
# 字符串中的第几个字符   正向从0开始  反向从-1开始
print([3])
#输出:很
print([5])
#输出:,
print([-1])
#输出:.
print([-9])
#输出:帅

 

2.切片  print(s[""])   切片 顾头不顾尾  默认从左往右切
不能改变原来字符串 只能产生新的字符串
s="1234567890"
print(s[2:5])
#输出:345
print(s[3:10])
#输出:4567890   # 如果右边的值超过字符的长度,切到最后
print(s[2:])  # 切到最后
#输出:34567890
print(s[-5:])   #切到最后
#输出:67890
print(s[:])    #全部切出来
#输出:1234567890
# 可以跳着切 步长 step
print(s[1:9:2])
#输出:2468
print(s[3:8:-1])  #反着切
#输出不了  反着 从8无法切到3
print(s[-1:-6:-2])
#输出:086

 

首字母大写; 每个单词首字母大写
s="xu yang zhen de chou!"
s1=s.capitalize()     # 首字母大写
print(s1)
s2=s.title()      #    标题 ,单词首字母大写  除英文字母之外的其它字符全都算分割符                                  #将字符串分割成两个甚至多个,分开之后的所有首字母都大写
print(s2)
n="xu y>[email protected] zhe=n de cho,u!"
n1=s.title()
print(n1)
#输出:    Xu Y>[email protected] Zhe=N De Cho,U!

 

全部转换成大写  (.upper() ) 字母;全部转换成小写  (.lower() )  字母;大小写转换(.swapcase())
name = "taiBai"
s1 = name.upper() # 转换成大写字母
print(s1)
s2 = name.lower()  #转换成小写字母
print(s2)

 

# 用户登录
while 1:
    verify_code ="Alex"
    verify_code_uesr=input("请输入验证码:")
    if verify_code_uesr==verify_code:
        print("验证成功")
        break
    else:
        print(验证失败)
如果出现用户大小写输入有误 验证不成功,那么改成大小写输入都能够验证成功
while 1:
    verify_code ="alex"
    verify_code_uesr=input("请输入验证码:")
    if verify_code_uesr.upper()==verify_code.upper():
        print("验证成功")
        break
else:
        print(验证失败)
s = "alexAndEggonAndRiTian"
s1 = s.swapcase() # 大小写转换
print(s1)
 
s2 = "БB?" # 俄美德
print(s2)
print(s2.lower())
print(s2.casefold())
 

 

居中 (.center) ;    一个TAB ;
s = "alex"
s1 = s.center(15, "*") # 拉长成10个字符. 由*进行填充
print(s1)
# 输出 ******alex*****
 
s = "al	wusir"     #/t   TAB 
s1 = s.expandtabs()
print(s)
print(s1)
# 输出 
 al    wusir
al      wusir

 

去除两边空格(.strip)   (.lstrip)去除左边空格  (.rstrip)去除右边空格
s=" alxe, xueyang, sylar, boss,熊大 "
s1=s.strip()
print(s1)
s2=s.lstrip()
print(s2)
s3=s.rstrip()
print(s3)

 

字符串切割(.split) 切割的结果是列表
如果原字符跟用来切割的字符一样得到两个空字符
在开头结尾如果出现用于切割的字符一定会得到空字符
s = "李嘉诚_王健林_马云_刘东强_alex"
lst = s.split("_") # 字符串切割. 切割的结果是列表
print(lst[0])
print(lst[1])
print(lst[2])
print(lst[3])
print(lst[4])
输入:
李嘉诚
王健林
马云
刘东强
alex
s = "李嘉诚王健林麻花藤周杰伦"
lst = s.split("李嘉诚王健林麻花藤周杰伦") # 如果原字符串和刀一样.得到的是两个空字符串
lst = s.split("马云") # 如果不存在.得到的是原字符串
lst = s.split("") # empty separator 报错
print(lst)
s.split()
 
s = "a_b_c_d_e_f_g"
lst = s.split("_", 2) # 第二个参数. 切的次数
print(lst)
 
s = "周杰伦_周润发_周星驰_周星星"
lst = s.split("周杰伦")
print(lst)
lst = s.split("周星星")
print(lst)
# 在开头和结尾如果出现了你的刀. 一定会出现空字符串

 

字符串替换
# 字符串替换
s8 = "sylar_alex_taibai_wusir_eggon"
ret = s8.replace(alex, 金角大王) # 把alex替换成金角大王
print(s8) # sylar_alex_taibai_wusir_eggon 切记, 字符串是不可变对象. 所有操作都是产生新字符串返回
 
print(ret) # sylar_金角大王_taibai_wusir_eggon

 

格式化输出 (.format())
#    %s 字符串
#    %d 数字站位
print("%s很帅, 你信吗?" % "")
print("{}很帅, {}信吗?, 不信给你{}钱".format("旭哥", "我们", 100))
print("{1}很帅, {0}信吗?, 不信给你{2}钱".format("旭哥", "我们", 100))
print("{person1}很帅, {person2}信吗?, 不信给你{money}钱".format(person1="旭哥", person2="我们", money=100))

 

数数 (count)  :计算字符在字符串中出现的次数,如果没有出现返回0
 查找(find)  :如果你要查找的内容不存在,返回 -1,如果存在返回索引
求索引(index):如果找不到报错
#count 数数
s = "alex wusir taibai 女神"
print(s.count("ai")) # 计算ai在原字符串中出现的次数 如果没出现返回0
 
# find 查找
s = "明天周末了.你们打算干什么去?"
print(s.find("")) # 如果你要查找的内容不存在. 返回-1, 如果存在返回索引
 
#index 求索引
s = "下周我们要考试了. 你们慌不慌"
print(s.index("你大爷")) # 如果找不到报错

 

 
条件判断   判断字符是不是以XXX开头(,startswith("") 或者以XXX结尾(.endswith(""))
s = "写个啥呢? 哈哈哈"
# 判断字符串是否以xxx开头
print(s.startswith("写个啥呢"))
# 判断字符串是否以xxx结尾
print(s.endswith("哈哈哈"))

 

判断是否是字母和数字组成
s = "abcdefg"
print(s.isalnum()) # 数字和字母
print(s.isdigit()) # 数字
print(s.isalpha()) # 字母
# 输出
True
False
True

 

求字符串长度 len("") 
s = "abcde"
ret = len(s) # 内置函数
print(ret)
print("你好")
#练习, 计算在字符串"I am sylar, I‘m 14 years old, I have 2 dogs!" 出现过多少个数字. 个位为单位
s="I am sylar, I‘m 14 years old, I have 2 dogs!"
count=0
for w in s :
    if w.isdigit():
        count=count+1
print(count)

 

以上是关于基本数据类型 (int , bool, str)的主要内容,如果未能解决你的问题,请参考以下文章

基本数据类型(int bool str)

基本数据类型 (int , bool, str)

03.Python基本数据类型(int, bool, str)

python3:基本数据类型(int,bool,str)

关于int,bool,str

基本数据类型:1. int(整数) 2. bool(布尔值) 3. str(字符串)