字符串

1.基本数据类型概况
   1.int  整数
   2.str   字符串
   3.bool   布尔值
   4.list >= []   列表,一般存放大量数据,举例:["门神xxxx","元素","人名xxx"]      取值的话直接按照位置取s[0], s[1]   5.tuple  >= () 元组, 只读列表,只能看啥也不能干.(元素,元素)
   6.dict  >= {}  字典.{"王力宏","sho","等等"}
   7.set  >= ()  集合,不重复 .{"王力宏","sho","等等"}
   8.bytes   一堆字节,最小数据单元
2.int类型的相关操作
数字没办法执行其他操作,操作只有  +,-,*,/,//,%,**
8bit = 1byte
bit_length()  显示二进制长度
a = 5   # 1+1+1+1+1=101
print(a.bit_length())
b = 17
print(b.bit_length())
c = 1   #1变成二进制是1
print(c.bit_length())
d = 2   #2变成二进制是10,逢二进一
print(d.bit_length())
 
3.bool类型的操作,基本类型转换的问题
bool类型没有操作,
字符串  >= 数字    int()
数字  >=  字符串   str()
x   >=  y类型   y(x)
a = 10
print(type(a))   #<class 'int'>
b = str(a)
print(type(b))    # <class 'str'>
结论一:想把XXX数据转化成yy类型的数据.yy()
把数字转化成bool
a = 10
print(bool(a))  #True
print(bool(1))   #True
print(bool(0))  #false
print(bool(-1))  #True
0是false,非零是True
print(bool("哈哈")) # True
print(bool(" ")) # 空格是True
print(bool("")) # 空字符串是false
结论二:能够表示false的数据:0,"",[],{},set(),tuple(),None,false(空字符串表示false,所有的空可以表示false)
print(bool([]))  # False 空列表
print(bool({}))   # False 空字典
print(bool(set()))   # False 空集合
None 空,真空
print(bool(None))   #false
# while 1:  # while True: # 底层一定会有 True => 1的过程
#     print("还我钱")
4.str 认识字符串(重点,多)
字符:单一的文字符号
字符按照固定的顺序连成串
字符串:被''或者""'或者'''或者"""括起来的内容就是字符串
索引:  编号,顺序  从0开始
索引使用[下标]获取数据,索引还可以到这数,起始位置 -1
s = "今天中午吃胡辣汤"
 
# 索引使用[下标]获取数据
print(s[3])   #午
print(s[2])   #中
 
print(s[-5])  #午
print(s[-3])  #胡
print(s[-6])   #中
切片  s[start:end:step]     start:开始    end:结束,取不到    step:步长,控制方向,每xxx个取一个(+代表从左往右取值,-代表从右往左取值)
切片:从一个字符串中截取出一部分字符串
      [strat:end]    顾头不顾尾,end取不到,默认的是从左往右切.
s = "中间的,你们为什么不说话.难受"
print(s[3:7])  # ,你们为
print(s[5:9])  # 们为什么
print(s[-3: -7])  # 切不到东西, 默认是从左往右切
print(s[-7: -3])  # 么不说话
print(s[:6])  # 从头开始切
print(s[6:])  # 切到末尾
print(s[:])  # 从开始到结束
    [start:end;step]  步长step:默认是1,每xxx个取一个,默认是从左往右切
s = "abcdefghiklmn"
print(s[::2])    #acegiln
print(s[1:5:3])  #be
print(s[7:3])    # 默认步长1 从左往右切
print(s[7:3:-1])  # 从右往左切,顾头不顾尾,取第7位不取第3位,反过来取值
# step可以控制方向. 如果step是正数. 从左往右切. 如果是负数 . 从右往左切
print(s[-1:-8: -2]) # nljh
      step可以控制方向,如果step是证书,从左往右切,如果是负数,从右往左切
s = "分出你我的什么队不是迅达看得开科技联合"
print(s[3:9])   #我的什么队不
print(s[-2:-7:-2])    #联科得
print(s[3::-3])     #我分
print(s[::-1])  #合联技科开得看达迅是不队么什的我你出分
  判断是否是回文
s = "黄山落叶松叶落山黄"
s2 = s[::-1] # 翻过来
if s == s2:
    print("是回文")
else:
    print("不是回文")
  一大波操作
字符串是不可变的类型,不论如何操作,对原来的字符串是不会有任何改变
s1    capitalize()   把首字母变成大写,返回给你一个新的字符串
s = "qwertuio"
s1 = s.capitalize()
print(s1)
  title()  标题,把字符串中每个单词的首字母大写
s = "qwertuio"
s1 = s.title()
print(s1)
1. upper() 转换成大写,忽略大小写(主要是用在验证码)
s = "alex sb dsb bigsb"
s1 = s.upper()
print(s1)
while True:
    content = input("请输入你要说的话 输入Q退出:")
    if content.upper() == "Q": # 当需要忽略大小写的时候
        break
    print("你想对打野说", content)
 # 验证码
 verifyCode = "aEmn"
 veri = input("请输入你的验证码(%s)" % verifyCode)
 if veri.upper() == verifyCode.upper(): # 忽略掉用户输入的大小写
     print("验证码是正确的")
 else:
     print("验证码错误")
lower() 转换成大写,忽略大小写(主要是用在验证码)
lower() 和upper()相反
center()   中间,居中,括号里面的是长度
s = "alex"
s6 = s.center(10, "*") # 长度, 用_填充
print(s6)
strip()  去掉左右两端的空白(空格,  \t,      \n),所有用户输入的内容都要去空白,中间的内容不会动    \t就是tab,    \n是换行
s = "\n\nalex    is      sb      "
print(s)
s1 = s.strip() # 去掉左右两端的空白(空格, \t, \n), 中间的内容不会动
print(s1)
结果:alex    is      sb
uname = input("请输入你用户名:").strip()  # 干掉用户的空格
upws = input("请输入你的密码:").strip()  # 干掉用户的空格
if uname =="alex" and upws == "123":
    print("登录成功")
else:
    print("登录失败")
 
s = "sbalexsbwusirsb"
print(s.strip("sb")) # 去掉左右两端的sb
 2.字符串的替换
replace(old,new) 把old换成new
s = "       good alex good wusir good 大虾 good 胡辣汤     "
s8 = s.replace("good", "sb")     # 把s中的good替换成sb
print(s8)
s9 = s.replace(" ", "")
print(s9)
s10 = s.replace("good", "sb", 2) # 字符串替换2次
print(s10)
字符串的切割  split  切出来的结果互放到列表中,刀如果把头切割,一定有空字符串
s = "alex 昨天给我们涨工资了? 不可能"
lst = s.split("alex") # 切出来的结果会放在列表中, 刀如果把头了. 一定会产生空字符串
print(lst)
#['', ' 昨天给我们涨工资了? 不可能']
s = "不知道你这个是什么,你在说一次"
s1 = s.split("不知道")
print(s1)
  #['', '你这个是什么,你在说一次']
startswith()判断是否已什么开头,endswith()判断是否已什么结尾.
name = input("请输入你的名字:")  # 张开
if name.startswith("张"):
    print("领钱")
else:
    print("不领钱")
count()计数
s = "alex 昨天给我们涨工资了? 不可能"
lst = s.count("x") # 切出来的结果会放在列表中, 刀如果把头了. 一定会产生空字符串
print(lst)
结果:主要记住这个数字出现的次数
find()查找,如果存在,返回索引,如果不存在返回-1
s = "滋滋冒油的猪蹄子"
print(s.find("牛")) # 用这个
结果:-1
index()如果找到了返回索引,找不到,报错
条件判断   
isalpha() 是否有基本的文字组成,是否是有字母组成(包括中文)
isdigit()   判断时候是数字组成     digit  数字  %d
len()   字符串长度,内置函数
s = "6690701704707"
print(len(s))   #13
 # 用while循环. 获取到每一个字符
 i = 0  # 索引
 while i < len(s):
     print(s[i])
     i += 1
for变量in  可迭代的对象:       无法看到字符的索引
          循环体(break,countinue)
for c in s: # c: charactor(字符) s: string
            print(c)
 
posted @ 2018-11-28 21:32  杨洪涛  阅读(289)  评论(0编辑  收藏  举报