一 for循环

1 什么是for循环

就是重复做某件事,for循环是python提供的第二种循环机制

2 为什么要有for循环

for循环和while循环很像,基本上能做的事相同

但是for循环在循环取值(遍历取值)比while循环方便

while循环称之为条件循环,循环次数根据条件真假

for循环称之为迭代循环,循环次数根据in后面跟的值的个数

3 如何使用for循环

语法

for 变量名 in 可迭代对象: #可迭代对象可以是:字典,列表,集合,元组,字符串
子代码

扩展:range()

range(3) #顾头不顾尾
>>>rang[0,3]==>[0,1,2]
range(1,4,1)#第一个数字是起始值,默认为0,第二个数字必须写,为结尾值,第三个数字是步长,默认为1
>>>range[1,4]==>[1,2,3]
#python对代码的优化,把range变成一个可以“下蛋的鸡”,想取的时候调用即可

for循环中还可以用break,continue,else连用,具体方法和while相同

username = "hz"
passowrd = "123"
for i in range(3):
name_inp = input("请输入用户名:")
pwd_inp = input("请输入密码:")
if name_inp == username and pwd_inp == passowrd:
print("登陆成功")
break
else:
print("账号或密码错误")
else:
print("输错三次,退出!")

扩展,print中“,”,end=“ ”,\n的使用

print("hello\n","world",end="@")#,等于空格 \n等于换行,end=“”等于结尾符
print("123\n",end="*")
>>>hello
>>> world@123
>>>*

二 基本数据类型的内置方法

int和float主要是数学运算和比较运算

2 字符串

2.1 类型转化

str可以把任意其他类型都转化成字符串类型

a = {"x":123}
b = str(a)

2.2 内置方法(优先掌握)

2.2.1 按索引取值
msg = 'hello world' #从0开始依次索引
print(msg[0])#只能取,不能改,因为是不可变类型
>>>h
2.2.2 切片
msg = 'hello world'
res = msg[0:5:1] #第一个数字是起始值,默认为0,第二个数字为结尾值,第三个数字是步长,默认为1,顾头不顾尾
print(res)
>>>hello
print(msg[::-1]) #当步长为-1时,把字符串反转
>>>dlrow olleh
2.2.3 成员运算

in, not in上一章已经讲过

2.2.4 strip去掉字符串左右两边符号
msg = '&&&&hello'
print(msg.strip("&"))#删除字符串左右两边和括号内字符相同的字符,默认为空格
>>>hello
2.2.5 切分
msg = 'aaa,bbb,ccc'
print(msg.split(","))#以()内的字符为分割符,默认是空格
>>>['aaa', 'bbb', 'ccc']
2.2.6 循环
a = "hello"
for i in a:
print(i)
>>>h
>>>e
>>>l
>>>l
>>>o

2.3 需要掌握

2.3.1 strip,lstrip,rstrip
a  = "*****hz******"
print(a.rstrip("*"))#去除右边指定字符
print(a.lstrip("*"))#去除左边指定字符
print(a.strip("*"))#去除两边指定字符
>>>*****hz
>>>hz******
>>>hz
2.3.2 lower,upper
a = "hz IS dsb"
print(a.lower())#使字符串全变成小写
print(a.upper())#使字符串全变成大写
>>>hz is dsb
>>>HZ IS DSB
2.3.3 startswith,endswith
a = "hz is dsb"
print(a.startswith("hz"))#字符串是否以指定字符开头
print(a.endswith("bs"))#字符串是否以指定字符结尾 返回结果为布尔值
>>>True
>>>False
2.3.4 format格式化输出
print("hz is {hz},lxt is {lxt}".format(hz="dsv",lxt="dmv"))
>>>hz is dsv,lxt is dmv
print("hz is {0},lxt is {1}".format("dsv","dmv"))
>>>hz is dsv,lxt is dmv
2.3.5 split,rsplit
a = "a,b,c,d,e"
print(a.split(",",1))#从左到右以指定字符切分字符串,后面可以加切分次数
print(a.rsplit(",",2))#从右到左以指定字符切分字符串
>>>['a', 'b,c,d,e']#输出的是列表
>>>['a,b,c', 'd', 'e']
2.3.6 join
print("%".join("hello"))#以指定字符来分隔字符串
>>>h%e%l%l%o
print('|'.join(['tony','18','read'])) # 从列表中取出多个字符串,然后按照丨作为分隔符号进行拼接
>>>'tony|18|read'
2.3.7 replace
a = "hz is sb sb"
print(a.replace("sb","dsb",1))#将旧字符串修改成新字符串,后可以加修改次数
>>>hz is dsb sb
2.3.8 isdigit
a = "123123"
print(a.isdigit())#判断字符串内是否全是数字,输出是bool
b = "a12123"
print(b.isdigit())
>>>True
>>>False

2.4 了解操作

# 1.find,rfind,index,rindex,count
# 1.1 find:从指定范围内查找子字符串的起始索引,找得到则返回数字1,找不到则返回-1
>>> msg='tony say hello'
>>> msg.find('o',1,3) # 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引
1
# 1.2 index:同find,但在找不到时会报错
>>> msg.index('e',2,4) # 报错ValueError
# 1.3 rfind与rindex:略
# 1.4 count:统计字符串在大字符串中出现的次数
>>> msg = "hello everyone"
>>> msg.count('e') # 统计字符串e出现的次数
4
>>> msg.count('e',1,6) # 字符串e在索引1~5范围内出现的次数
1 # 2.center,ljust,rjust,zfill
>>> name='tony'
>>> name.center(30,'-') # 总宽度为30,字符串居中显示,不够用-填充
-------------tony-------------
>>> name.ljust(30,'*') # 总宽度为30,字符串左对齐显示,不够用*填充
tony**************************
>>> name.rjust(30,'*') # 总宽度为30,字符串右对齐显示,不够用*填充
**************************tony
>>> name.zfill(50) # 总宽度为50,字符串右对齐显示,不够用0填充
0000000000000000000000000000000000000000000000tony # 3.expandtabs
>>> name = 'tony\thello' # \t表示制表符(tab键)
>>> name
tony hello
>>> name.expandtabs(1) # 修改\t制表符代表的空格数
tony hello # 4.captalize,swapcase,title
# 4.1 captalize:首字母大写
>>> message = 'hello everyone nice to meet you!'
>>> message.capitalize()
Hello everyone nice to meet you!
# 4.2 swapcase:大小写翻转
>>> message1 = 'Hi girl, I want make friends with you!'
>>> message1.swapcase()
hI GIRL, i WANT MAKE FRIENDS WITH YOU!
#4.3 title:每个单词的首字母大写
>>> msg = 'dear my friend i miss you very much'
>>> msg.title()
Dear My Friend I Miss You Very Much # 5.is数字系列
#在python3中
num1 = b'4' #bytes
num2 = u'4' #unicode,python3中无需加u就是unicode
num3 = '四' #中文数字
num4 = 'Ⅳ' #罗马数字 #isdigt:bytes,unicode
>>> num1.isdigit()
True
>>> num2.isdigit()
True
>>> num3.isdigit()
False
>>> num4.isdigit()
False #isdecimal:uncicode(bytes类型无isdecimal方法)
>>> num2.isdecimal()
True
>>> num3.isdecimal()
False
>>> num4.isdecimal()
False #isnumberic:unicode,中文数字,罗马数字(bytes类型无isnumberic方法)
>>> num2.isnumeric()
True
>>> num3.isnumeric()
True
>>> num4.isnumeric()
True # 三者不能判断浮点数
>>> num5 = '4.3'
>>> num5.isdigit()
False
>>> num5.isdecimal()
False
>>> num5.isnumeric()
False '''
总结:
最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
如果要判断中文数字或罗马数字,则需要用到isnumeric。
''' # 6.is其他
>>> name = 'tony123'
>>> name.isalnum() #字符串中既可以包含数字也可以包含字母
True
>>> name.isalpha() #字符串中只包含字母
False
>>> name.isidentifier()
True
>>> name.islower() # 字符串是否是纯小写
True
>>> name.isupper() # 字符串是否是纯大写
False
>>> name.isspace() # 字符串是否全是空格
False
>>> name.istitle() # 字符串中的单词首字母是否都是大写
False

day8 for循环+基本数据类型(上)的更多相关文章

  1. 四探循环依赖 → 当循环依赖遇上 BeanPostProcessor,爱情可能就产生了!

    开心一刻 那天知道她结婚了,我整整一个晚上没睡觉,开了三百公里的车来到她家楼下,缓缓的抽了一支烟...... 天渐渐凉了,响起了鞭炮声,迎亲车队到了,那天披着婚纱的她很美,真的很美! 我跟着迎亲车队开 ...

  2. 深入研究Block用weakSelf、strongSelf、@weakify、@strongify解决循环引用(上)

    深入研究Block捕获外部变量和__block实现原理 前言 在上篇中,仔细分析了一下Block的实现原理以及__block捕获外部变量的原理.然而实际使用Block过程中,还是会遇到一些问题,比如R ...

  3. for循环以及数据类型

    一.for循环(迭代式循环) 了解:当我们在写代码时,如果代码是纯运算的代码,会占用大量的CPU,如果是I/O代码,则不会占用CPU. for i in range(10):  #可以是任意类型(字符 ...

  4. Python基础—05-总结:双重循环,数据类型

    总结 双重循环 冒泡排序 lt = [1, 5, 7, 3, 2, 4] # 计算元素的个数 n = len(lt) # 外层循环控制圈数 for i in range(n-1): for j in ...

  5. mysql 开发基础系列12 选择合适的数据类型(上)

    一. char 与varchar比较 在上图的最后一行的值只适用在"非严格模式",关于严格模式后面讲到.在“开发基础系列4“ 中讲到CHAR 列删除了尾部的空格.由于char是固定 ...

  6. while.for循环和基本数据类型内置方法

    while循环补充说明 流程控制之for循环 基本数据类型内置方法 内容详细 1.死循环 真正的死循环是一旦执行,Cpu的功耗会急速上升 知道系统采取紧急措施 所以 尽量不要让cpu长时间不断运算. ...

  7. python基础之条件控制与循环

    Python3 条件控制 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户 ...

  8. JavaScript基础——实现循环

    循环是多次执行同一段代码的一种手段.当你需要在一个数组或对象集上重复执行相同的任务时,这是非常有用的. JavaScript提供执行for和while循环的功能. 1.while循环 JavaScri ...

  9. 16-underscore库(上)

    第16课 underscore库 一.介绍 Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象.他弥补了 ...

随机推荐

  1. 氦元素 - CUBA 应用程序新样式主题

        CUBA 框架一直以来定位的目标是业务系统的开发.业务系统的界面通常是给后台员工使用的,看重的是功能实现.多年来,界面外观和样式并不是后台管理系统的主要关注点,界面中的控件也更紧凑,唯一的原因 ...

  2. 【译】构造和匹配二进制(Efficiency Guide)

    可以通过以下方式有效地构建二进制: my_list_to_binary(List) -> my_list_to_binary(List, <<>>). ​ my_list ...

  3. @atcoder - CODE FESTIVAL 2017 Elimination Tournament Round 3 F@ Unicyclic Graph Counting

    目录 @description@ @solution@ @accpeted code@ @details@ @description@ 求有多少 n 点 n 边的无向连通图,满足第 i 个点的度数为 ...

  4. QT creator视频教程分享

    Qt Creator快速入门(第3版) [霍亚飞著] 完整pdf扫描版[92MB] 附随书源码,资源收集于网络,供参考 https://pan.baidu.com/s/1pLQdIUR kjaf ht ...

  5. vulstack红队评估(三)

    一.环境搭建: ①根据作者公开的靶机信息整理 没有虚拟机密码,纯黑盒测试...一共是5台机器,目标是拿下域控获取flag文件   ②虚拟机网卡设置 centos双网卡模拟内外网: 外网:192.168 ...

  6. platform驱动架构初探

    platform总线是Linux2.6引入的虚拟总线,这类总线没有对应的硬件结构.与之相反,USB总线和PCI总线在内核中是有对应的bus(USB-bus和PCI-bus)的.为了统一管理CPU这些既 ...

  7. 黎活明8天快速掌握android视频教程--17_创建数据库与完成数据添删改查

    1.我们首先来看下整个项目 项目也是采用mvc的框架 package dB; import android.content.Context; import android.database.sqlit ...

  8. 【C++和C#的区别杂谈】后自增运算符的结算时机

    C++和C#的前自增++n和后自增n++,都是先自增后取值和先取值后自增的含义,但在复杂一点的赋值语句中,我发现细节上有很大的差异. 发现这个问题主要是一个无聊的晚上,我想搞清楚后自增是什么时候结算, ...

  9. 设计模式系列之中介者模式(Mediator Pattern)——协调多个对象之间的交互

    说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https:/ ...

  10. Github仓库如何选择开源许可证

    Github仓库如何选择开源许可证 目录 Github仓库如何选择开源许可证 为什么需要开源许可证? 不使用开源许可证对于开发者有何影响? 不使用开源许可证对于项目的使用者有何影响? Github的开 ...