python之路day03--数据类型分析,转换,索引切片,str常用操作方法
数据类型整体分析
int :用于计算
bool:True False 用户判断
str:少量数据的存储 list:列表 储存大量数据 上亿数据
[1,2,3,'zzy',[aa]] 元组:只读列表
(1,23,'asdadas') dist:字典 键值对的形式储存,关系型
{'name':'小王八','age':16}
{'小王八':[12,3,'dsaa'],'二哥':[200,200]} 集合:求交集等
{1,2,33,'adsf'}
int bool str 数据转换
int:
i =2
print(bit_length(100)) #转成2进制的最小位数 1 0000 0001 #
2 0000 0010 #
3 0000 0011 #
bool:True False
int --->> str
i =1
print(str(i),type(i)) # 1 <class 'int'>
str --->> int (只能是数字才能转换成int类型)
s = ''
print(int(s)) #
int --> bool (非零数字转换为bool,为T,0位False)
i=1
j=0
print(bool(i)) #True
print(bool(j)) #False # bool-->int (T为1,False为0)
print(int(True)) #
print(int(False)) #
ps:
while True:
pass while 1: #效率高,最终要转为2进制
pass
str--->bool (非空字符串为True,空字符串为False)
print(bool('')) #False
print(bool('')) #True print(type(str(True))) #<class 'str'>
print(type(str(False))) #<class 'str'>
str索引及切片
s = 'asdfghjkl'
s1 = [0] #s1和s没有任何关系,对原字符串进行切片(原字符串不变),是生成的新的字符串
s[首:尾:加步长]
索引从0开始,print(s[0]) 为a
print(s[0:3]) -->asd #切片顾头不顾尾 print(s[0:6:2]) -->>adg
print(s[0:]) -->>asdfghjkl 全部字符串
print(s[:]) -->>asdfghjkl 全部字符串
print(s[0::2]) -->>adgjl #步长必须要是规律的 1,2,3
#从后面取 步长-1
print(s[4:0:-1]) #gfds
print(s[::-2]) #ljgda
字符串的操作放法及for循环
s = 'alex Wusir'
#
s1 = s.capitalize() #首字母大写
print(s1) #Alex wusir s2 = s.upper() #全部大写
s21 = s.lower() #全部小写
print(s2,s21) #ALEX WUSIR alex wusir s3 = s.swapcase() #大小写翻转
print(s3) #ALEX wUSIR a = 'zhangyang zy yy'
a1 = a.title() #每个隔开的(特殊字符和数字)单词首字母大写
print(a1) #Zhangyang Zy Yy
ps:
s_str = 'acEQ'
you_input = input('请输入验证码,不区分大写小:')
if you_input.lower() == s_str.lower():
print('登录成功') else:
print('输入有误,请重试')
居中,空白填充 20长度
s = 'alex Wusir’
s5 =s.center(20,'%')
print(s5)# %%%%%alex Wusir%%%%%
#\t 补充到8位(包含alex)
#\t 补充到8位(包含alex,从alex向左数8位)
s = 'alex\tsir'
s6 = s.expandtabs()
print(s6) #alex sir
str常见的操作方法
len
s = 'alex Wusir'
l = len(s)
print(l) #10 10个元素,代表10个字符
判断字符串以什么开头
s7 = s.startswith('alex')
print(s7) #True s8 = s.startswith('e',2,5) #True 索引切片2-5
print(s8)# True
find 通过元素找索引,找到返回下标,找不到返回-1
s = 'alex Wusir'
s9 = s.find('a',0,4)
print(s9) # s91 = s.find('l')
print(s91) # s92 = s.find('y')
print(s92) #-1
index 通过元素找索引,找不到返回报错
s10 =s.index('a')
print(s10) #
strip 默认删除前后空格,加上chars,从首尾同时开始删除,遇到阻碍就不在进行
s = ' @a@lex%Wusir@ '
s11= s.strip()
print(s11) #@a@lex%Wusir@ s12 =s.strip('%@ ')
print(s12) #@alex%Wusir@
s13=s.lstrip() #只删左边的
print(s13)
s14=s.rstrip() #只删右边的
print(s14)# @a@lex%Wusir@
str = ' a@lex%Wusir@ '
str1 =str.strip('%@ ')
print(str1) #a@lex%Wusir
count 计算字符出现了几次
st = 'aa2234fdssf'
st1 = st.count('a')
print(st1) #
split 以符号分割文本,默认是空格分割 S.split(sep=None, maxsplit=-1) -> list of strings
str -->> list
s = 'alex wusir zy'
l = s.split()
print(l) #['alex', 'wusir', 'zy'] s1 = 'alex:wusir:zy'
l1 = s1.split(':')
print(l1) #['alex', 'wusir', 'zy']
#ps:一分为二
s2 = ':alex:wusir:zy'
l2 =s2.split(':')
print(l2) #['', 'alex', 'wusir', 'zy']
format的三种玩法 格式化输出 {}为占位
s ='我叫{} 今年{} 喜欢{},再说一下我叫{}'.format('zy',18,'coding','zy') #有几个占位符就要写几个,和%s占位差不多
s ='我叫{0} 今年{1} 喜欢{2},再说一下我叫{0}'.format('zy',18,'coding','zy') #我叫zy 今年18 喜欢coding,再说一下我叫zy
s ='我叫{name} 今年{age} 喜欢{hobby},再说一下我叫{name}'.format(name = 'zy',age = 18,hobby = 'coding') #我叫zy 今年18 喜欢coding,再说一下我叫zy
print(s) #我叫zy 今年18 喜欢coding,再说一下我叫zy
replce # S.replace(old, new[, count]) -> str
s = 'sadaafdslfkds'
s1 = s.replace('a','b') #默认全部替换
print(s1) #sbdbbfdslfkds
s2 = s.replace('a','b',1) #只替换一次
print(s2) #sbdaafdslfkds
is系列 判断
s= 'sadg112'
s1=s.isalnum() #字母或数字
print(s1) #True
s2=s.isalpha() #字母
print(s2)#False
for循环
s = 'asdfggs' #循环输出字符串里面的元素
for i in s:
print(i) if 'a' in s:
print('您输出的词语有敏感词汇') for i in (18,11,22):
print(i) #18 11 22
相关练习题
使用while或for循环打印出字符串的每个元素
s = 'asdfer' index = while :
print(s[index])
index +=
if index == len(s):
break
实现一个整数加法计算器
如:content = input('请输入内容:') #如用户输入:+9或5+ 9或者5 + ,然受进行分割进行计算 )
content = input('请输入内容:').strip()
content1 = content.split('+')
sum =
index=
for i in content1: con1=int(content1[index])
sum = sum+con1
index+=
print(sum) )
sum =
content = input('请输入内容:').strip()
content1 = content.split('+')
for i in content1: sum = sum+int(i)
print(sum)
任意输入一串数字+文字 统计出来数字的个数 a= 'sdafg1123222'
print(a.count('')) 1)
num =0
a = input('<<<')
for i in a:
if int(i) in [0,1,2,3,4,5,6,7,8,9]:
print(i.count(i),type(i))
num+=int(i.count(i))
print(num) 2) for 循环遍历每一个元素
count =0
a = '4451232assa'
for i in a:
if i.isdigit():
count+=1
print(count)
python之路day03--数据类型分析,转换,索引切片,str常用操作方法的更多相关文章
- python字符串的索引切片和常用操作方法,for循环
---恢复内容开始--- 一.字符串的索引与切片 1.索引 s = 'ASDFGHJKL' 有序序列,索引--index:从0开始 s1 = s[0],取出单个元素:A: s1是个全新的字符串和原字符 ...
- 百万年薪python之路 -- 基础数据类型的补充
基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...
- python之路:数据类型初识
python开发之路:数据类型初识 数据类型非常重要.不过我这么说吧,他不重要我还讲个屁? 好,既然有人对数据类型不了解,我就讲一讲吧.反正这东西不需要什么python代码. 数据类型我讲的很死板.. ...
- Python之路-基础数据类型之字符串
字符串类型 字符串是不可变的数据类型 索引(下标) 我们在日常生活中会遇到很多类似的情况,例如吃饭排队叫号,在学校时会有学号,工作时会有工号,这些就是一种能保证唯一准确的手段,在计算机中也是一样,它就 ...
- 小白的Python之路 day1 数据类型,数据运算
一.数据类型初识 1.数字 2 是一个整数的例子.长整数 不过是大一些的整数.3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4.(-5+4j ...
- Python基础学习Day3 数据类型的转换、int、str、bool、字符串的常用方法、for循环
一.数据类型的转换 常用的是:int 转str.str转int.int转bool 时 非零即为 True . # 数据类型之间转换 ***** # int <--> str str(i ...
- Python之路-基础数据类型之字典 集合
字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...
- 百万年薪python之路 -- 基础数据类型的补充练习
1.看代码写结果 v1 = [1,2,3,4,5] v2 = [v1,v1,v1] v1.append(6) print(v1) print(v2) [1,2,3,4,5,6] [[1,2,3,4,5 ...
- python之路day03
1 复习计算机基础 计算机基础我们讲到完整的计算机系统包括了:应用程序,操作系统,硬件三部分.那么硬件又分为:cpu,内,和硬盘. 对于用户来说我们操作计算机是通过应用程序来间接控制计算机.当我们打 ...
随机推荐
- 使用OkHttp和Retrofit发送网易云信验证码
短信服务(Short Message Service)是网易网易云通信为用户提供的一种通信服务的能力,目前支持验证码类短信.通知类短信.运营类短信.语音类短信.国际短信等事务性短信.网易网易云通信短信 ...
- asyncio异步IO--协程(Coroutine)与任务(Task)详解
摘要:本文翻译自Coroutines and Tasks,主要介绍asyncio中用于处理协程和任务的方法和接口.在翻译过程中,译者在官方文档的基础上增加了部分样例代码和示意图表,以帮助读者对文档的理 ...
- 前后端分离djangorestframework——认证组件
authentication 认证是干嘛的已经不需要多说.而前后端未分离的认证基本是用cookie或者session,前后端分离的一般用token 全局认证 先创建一个django项目,项目名为drf ...
- AngularJS学习之旅—AngularJS 过滤器(七)
1.AngularJS 过滤器 过滤器可以使用一个管道字符(|)添加到表达式和指令中. AngularJS 过滤器可用于转换数据: 过滤器 描述 currency 格式化数字为货币格式. filter ...
- c/c++ linux 进程间通信系列5,使用信号量
linux 进程间通信系列5,使用信号量 信号量的工作原理: 由于信号量只能进行两种操作等待和发送信号,即P(sv)和V(sv),他们的行为是这样的: P(sv):如果sv的值大于零,就给它减1:如果 ...
- Linux Collection:软件配置
PAS Debian 9安装最新版Firefox( Firefox 58+/Quantum) Debian 9(Strech)的仓库包含的是firefox-esr(52)版本:需要安装最新版,有如下两 ...
- 周末班:Python基础之并发编程
进程 相关概念 进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本 ...
- 面向对象_item项目
详细见老师博客:http://www.cnblogs.com/Eva-J/articles/7351812.html#_label9 __getitem__\__setitem__\__delitem ...
- 部署Java和Tomcat
Tomcat介绍 Tomcat服务器是一个免费的开放源代码的Web应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP网页的首选. Tomcat和Nginx.Apach ...
- Java MultipartFile 使用记录
private void file(String path,MultipartFile file){ String separator = "/"; String originFi ...