Python学习 Day 03

常见的基本数据类型:

  • 1. int 整数
  • 2. bool 布尔. 判断. if while
  • 3. str 字符串, 一般放小量的数据.
  • 4. list 列表. 可以存放大量的数据
  • 5. dict 字典, 以key:value的形式存储数据
  • 6. set 集合(数学)
  • 7. tuple 元组 不可变

1.整数 

常见操作:+-*/  // % 其中 //的意思是 取整除返回商的整数部分。

bit_length()    一个数的二进制长度

a = 15    #15 的二进制表示是1111
print (a.bit_length())  # 4

2.bool 
 类型转换

a = "10"
b = int(a)
print(a,type(b))   #把字符串转化成int
a = 10
s = str(a)
print(s,type(s))   #把int转化成str

(1)  结论:  想转化成xxx数据类型 xxx(目标)

a = 10
b = bool(a)
print(b)
c = True
d = str(c)
print(type(d))
a = False
print(int(a))

 (2)  结论: True => 1 False => 0

s = ""
if s :
    print ("wahaha")
while 1:  # 1和True效率: 1的效率比True高一点点
    print("还我钱!")

(3)  可以当做False来用的数据: 0 "" [] {} () None

3. 字符串

    把字符连成串串. 在python中⽤用', ", ''', """引起来的内容被称为字符串

(1)索引:一排数字. 反应第某个位置的字符 索引的下标从0开始. 使用[]来获取数据

#     0  1 2 3 4 5 6
s1 = "百二秦关终属楚"
print (s1[0])
print (s1[1])
print (s1[2])
print (s1[3])
print (s1[6])
print (s1[7])      #string index out of range 越界,报错
print (s1[-1])       # -1 表示倒数.
print (s1[-5])       # 倒数第五个

(2 切片, 我们可以使⽤用下标来截取部分字符串串的内容   

    语法: str[start: end]    规则: 顾头不顾尾, 从start开始截取. 截取到end位置. 但不包括end

#     0  1 2 3 4 5 6
s1 = "百二秦关终属楚"
print (s1[0:3])   # 从0 获取到3 但不包括3 结果: 百二秦
print (s1[3:6])   # 关属楚
print (s1[4:7])    # 最大是7 ,但要想取到7 必须上限到8
print (s1[2:10])   # 如果给的有边值已经超过了7那么相当于取到最后
print (s1[2:])     #从第二个取到最后,右边的那位可以不给
print (s1[:5])     #从头取的话左边可以不给
print (s1[:])      # 原样输出
print (s1[-1:-5])    # 默认方向是从左到右,从-1取不到-5
print (s1[-5:-1])      #同样取不到最后一个字,
print (s1[-5:])        # 右边什么都不写 ,取到最后
print (s1[:-1])        # 这是取到倒数第一个

  跳着截取

   步长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1   

   切片语法:        str[start:end:step]    start: 起始位置    end: 结束位置    step:步

 #    0 1 2 3 4 5 6 7 8 9
s = "破釜沉舟百二秦关终属楚"
print (s[1:7:2])   #从第一个开始取,取到第7个(不包括7)每两个取一个
print (s[:6:2])    #从头取到第6个,每两个取一个
print (s[4::2])    #从第四个取到最后,每两个取一个
print (s[::2])     #从头取到尾,每两个取一个
print (s[-1:-6:-2])    #从右往左取,步长是-1,效果成逆序
print (s[::-2])        #步长可以决定取的方向
print (s[-6::-2])

  可以用来判断是否是回文

s = "上海自来水来自海上"  # 回文
s1 = s[::-1]
if s == s1:
    print("是回文")
else:
    print("不是回文")

(3)字符串的相关操作方法:

        1.  lower ()   ,全部转换成小写

             upper() 转化成大写. 忽略大小写的时候

s = "Alex is not a good man! Sally is a good man"
s1 = s.lower()
print (s1)       #    结果 alex is not a good man! sally is a good man
s = "Alex is not a good man! Sally is a good man"
s2 =s.upper()
print (s2)
while True :
    content = input ("请输入你要喷的内容(输出Q退出)")
    if content.upper() == "Q" :
        break
    print (content)              #在输入时不需要区分大小写

应用:

#应用, 校验用户输入的验证码是否合法
verify_code = "abDe" 
user_verify_code = input("请输⼊入验证码:")
if verify_code.upper() == user_verify_code.upper():
    print("验证成功")
else:
     print("验证失败")

     2.strip()    # 去掉左右两端的空格,   用户输入的内容都要去空白

s = "      有志者事竟成       \t"
print (s)
s1 = s.strip()
print (s1)

应用:   

# 模拟用户登录
#用户的输入时无法保证合法的例如有空格,需要进行处理和判断
username = input ("请输入用户名:").strip()
password = input ("请输入密码:").strip()
if username == "Alex"and password == "1234":
    print ("成功")
else :
    print ("失败")

另外:

s = "阳光很刺眼的阳光"
print(s.strip(""))    #注意去除的是两端,中间的去不掉  结果:阳光很刺眼的阳

  3.   replace(old, new) 字符串替换

s = "alex_wusir_ritian_taibai_evaj_eggon"
s1 = s.replace("taibai","taihei")
s2 = s.replace ("i","SB",2)     #意思是将字符串中的i换成SB,换两个
print (s1)
print (s2)

4.   split(",")   字符串切割, 根据,进⾏行行切割 ,结果是lst

s = "alex_wusir_ritian_taibai_evaj_eggon"
lst = s.split("ritian") # 刀有多宽 就要损失掉多少
print(lst)                          #结果是:['alex_wusir_ritian_', '_evaj_eggon']
s = "alex_wusir_ritian_taibai_evaj_eggon"
lst = s.split("_") # 刀有多宽 就要损失掉多少
print(lst)                           #结果是:['alex', 'wusir', 'ritian', 'taibai', 'evaj', 'eggon']
print ("周润发\n周星驰周杰伦周笔畅")     # \n 意思是换行

另外;

s = ("周润发周星驰周杰伦周笔畅")
lst = s.split("周润发周星驰周杰伦周笔畅")   # 切割的内容在边上. 会出现空字符串
print (lst)                    # 结果是: ['', '']
s = ("周润发周星驰周杰伦周笔畅")
lst = s.split("周星驰周杰伦周笔畅")   # 切割的内容在边上. 会出现空字符串
print (lst)                    # 结果是: ['周润发', '']

5. startswith() 判断是否以xxx开头 .endswith()  # 是否以xxx'结尾

s = "今天的内容非常简单.你们信吗? 作业也很容易. 就是整理不太好"
s1 = s.startswith("太好了")
s2 = s.endswith ("太好了")
s3 = s.startswith("今天的")
s4= s.endswith ("不太好")
print (s1)
print (s2)
print (s3)
print (s4)

6. find() 查找

#    0  1 2 3 4 5
s = "胡辣汤炸鸡啤酒烤鸭酱肘锅包肉炸鸡炸鸡炸鸡"
s1 = s.count ("炸鸡") #   用来计数
print (s1)            #结果4
s2 = s.find ("疙瘩汤")      #如果找不到就返回-1
print(s2)               #结果是-1
s3 = s.find ("啤酒")
print (s3)           #结果是 5
s4 = s.index("疙瘩汤")    #如果找不到就报错

7. isdigit() 判断是否是数字组成

s = "I am sylar, I'm 14 years old, I have 2 dogs!"
count = 0
for c in s:
    if c.isdigit():   #判断是否是数字组成
        count = count + 1
print(count)

8. len() 求长度. 内置函数

s = "我是上帝, 你也是上帝"
print(len(s)) # 内置函数len(字符串) 返回给你字符串的长度

(4) for 迭代

  • for 变量 in 可迭代对象:
  •    循环体(break, continue)
  • else:
  •   当循环结束的时候执行else
s = "朱元璋朱棣"
count = 0
while count < len (s):  # 遍历字符串的第一种办法
    print (s[count])
    count =count + 1
s = "朱元璋朱棣朱建峰"
# for循环
# for 变量 in 可迭代对象:
# 把可迭代对象中的每一个元素 分别赋值给前面的变量, 可以方便可迭代对象的遍历
for c in s:
    print(c)

另外:

 # TypeError: 'int' object is not iterable
for i in 10:
    print(i)  #报错

  

猜你喜欢

转载自www.cnblogs.com/wcx666/p/9592239.html