Python全栈学习_day003知识点
发布日期:2021-08-28 20:23:40 浏览次数:38 分类:技术文章

本文共 4824 字,大约阅读时间需要 16 分钟。

今日大纲:

1. 基础数据类型 总览2. int3. bool4. str5. for循环

 

1. 基础数据类型 总览
  int: 用于计算,计数等    str:'这些内容',用户少量数据的存储,便于操作    bool:True, False,两种状态,机器反馈给用户的对/错    list:[1, 'k', True, [], (), {}, ...] 大量的数据,各种数据类型,操作方便    tuple:(1, 'k', True, [], (), {}, ...) 只读列表    dict:字典. 大量的关联性数据        {
'name': 'alex', 'name_list': ['司徒', '李莲英', ...], '太白': {
'name': '太白', 'sex': '男'}} set:集合. {} 关系测试. 两种集合之间的并集是什么等等.

 

2. int

i = 4print(i.bit_length())   查询十进制转化成二进制占用的最小位数结果:3十进制             二进制   1              0000 0001   2              0000 0010   3              0000 0011   4              0000 0100

 

3. bool

数据类型之间的转化int <--> str     str(int); int(str)       ******int <--> bool    非0为True; 0为False     True --> 1; False --> 0str --> bool    ''(空字符串) --> False; 非空 --> True    name = input('>>>')    if name:        print(666)    else:        print('无内容')        bool --> str    没啥意义

 

4. str

 
对字符串的下面这两部分操作,形成的都是一个新的字符串,与原来的字符串没有关系
 
 
第一部分:索引、切片、步长
 
 
- 按照索引取值,取出来的都是一个字符形成的字符串
s1 = 'Python1期_骑士计划's2 = s1[0]print(s2)       Pprint(type(s2))     
s3 = s1[2]print(s3) ts4 = s1[-1]print(s4) 划s5 = s1[-2]print(s5) 计
- 按照切片取值, 顾头不顾尾
s6 = s1[0:6]print(s6)       Pythons61 = s1[:6]print(s61)      Pythons7 = s1[1:7]print(s7)       ython1s8 = s1[6:-1]print(s8)       1期_骑士计s81 = s1[6:]print(s81)      1期_骑士计划
- 按照切片+步长
s1 = 'Python1期_骑士计划's9 = s1[:5:2]print(s9)       Ptos91 = s1[1::2]print(s91)      yhn期骑计
如果想倒序取值,加一个反向步长(负号)
s10 = s1[-1:-5:-1]print(s10)      划计士骑s11 = s1[-1:-6:-2]print(s11)      划士_
第二部分:字符串的常用方法
name = 'old boy'print(name.capitalize())    Old boy;首字母大写    ***print(name.title())         Old Boys1 = 'alex wusir*taibai6nvshen'print(s1.title())   非字母隔开的每个部分的首字母大写    **
center: 字符串居中,前后填充自定义的字符  **
print(name.center(20, '*'))     ******old boy*******
upper(全部大写); lower(全部小写)        ******
print(name.upper())     OLD BOYprint(name.lower())     old boy
应用举例:
username = input('请输入用户名:')code = 'ADfeR'.lower()your_code = input('请输入验证码:').lower()if username == 'alex' and code == your_code:    print('登录成功')name = 'old boy'
startswith: 判断以什么为开头    *****
print(name.startswith('ol'))     True判断第5个位置之后的字符串以什么为开头print(name.startswith('b', 4))  True判断第2个位置到第5个位置的字符串以什么为开头print(name.startswith('ld', 1, 5))      True
endswith: 判断以什么为结尾      *****
与startswith用法一致print(name.endswith('o'))       False
swapcase: 大小写转换     **
name = 'oLd boY'print(name.swapcase())      OlD BOy
find(*****): 通过元素找索引, 找到第一个元素就返回其索引值,没有此元素则返回-1   *****
print(name.find('d'))       2print(name.find('Ld'))      1print(name.find('w'))       -1print(name.find('o', 1, -1))    5; find也可以设置字符串的开始和结束位置
index(*****): 通过元素找索引, 找到第一个元素就返回其索引值,没有此元素则报错
print(name.index('w'))      报错
strip(*****): 默认去除字符串前后的空格,换行符(\n),制表符(\t)
name = '\told boy 'print(name.strip())结果:old boy
strip:指定去除的字符
name1 = '*alex**'print(name1.strip('*'))      alexname2 = 'weralexqwe'print(name2.strip('erw'))       alexq
应用举例:
username = input('请输入用户名:').strip()if username == 'alex':    print('登录成功')
lstrip: 去除前面的空格rstrip: 去除后面的空格
 
split: 将字符串分割成列表(str --> list); 默认按照空格分割
s1 = 'alex wusir taibai'l1 = s1.split()print(l1)       ['alex', 'wusir', 'taibai']s2 = 'alex,wusir taibai'l2 = s2.split(',')print(l2)       ['alex', 'wusir taibai']
注意这三个的区别
s3 = ' alex wusir taibai'print(s3.split())       ['alex', 'wusir', 'taibai']s31 = ' alex wusir taibai'print(s31.split(' '))   ['', 'alex', 'wusir', 'taibai']s4 = ',alex,wusir,taibai'print(s4.split(','))    ['', 'alex', 'wusir', 'taibai']
设置split的分割次数
s5 = 'alexlwle'print(s5.split('l', 1))     ['a', 'exlwle']print(s5.rsplit('l'))
join(**********): 自定制连接符,将可迭代对象中的元素连接起来
str1 = 'alex's2 = '*'.join(str1)print(s2)       a*l*e*x
replace(*****): 替换
str2 = 'alex 是创始人,alex很牛逼,alex...'s3 = str2.replace('alex', 'SB')print(s3)       SB 是创始人,SB很牛逼,SB...
可以设置替换次数,但是只能从前往后开始替换
str2 = 'alex 是创始人,alex很牛逼,alex...'s3 = str2.replace('alex', 'SB', 1)print(s3)       SB 是创始人,alex很牛逼,alex...
格式化输出: format
三种方式第一种:s1 = '我叫{}, 今年{}, 性别{}'.format('太白', '28', '男')print(s1)       我叫太白, 今年28, 性别男第二种:s2 = '我叫{0}, 今年{1}, 性别{2}, 我还是叫{0}'.format('太白', '28', '男')print(s2)       我叫太白, 今年28, 性别男, 我还是叫太白第三种:s3 = '我叫{name}, 今年{age}, 性别{sex}, 我还是叫{name}'.format(age = '28', name = '太白', sex = '男')print(s3)       我叫太白, 今年28, 性别男, 我还是叫太白
is 系列
name = 'taibai123'print(name.isalnum())   True; 判断name是否以字母或者数字组成print(name.isdigit())   False; 判断name是否全部以数字组成print(name.isalpha())   False; 判断name是否全部以字母组成
公共方法
count: 计数,计算给定字符出现几次,可以进行切片name = 'alex'print(name.count('a'))      1len: 计算字符串有多长,就是元素的个数print(len(name))        4

 

5. for循环

先用while循环打印每个元素s1 = 'sdkjasgfjgsafkj'index = 0while index < len(s1):    print(s1[index])    index += 1
如果对一个数据类型进行循环或者是一个有限循环的时候,往往要用到for循环
for i in s1:    for 变量 in iterable(可迭代对象)    print(i)    for i in s1:    for 循环的次数是和可迭代对象的元素的个数有关    print(s1)

 

转载于:https://www.cnblogs.com/BlameKidd/p/9846247.html

转载地址:https://blog.csdn.net/weixin_33970449/article/details/94334270 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:类型转换概念及练习
下一篇:《陶哲轩实分析》部分勘误

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月22日 09时47分33秒