一 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. 01.Wireshark入门

    Wireshark官网下载地址: https://www.wireshark.org/#download

  2. 微信小程序概念与注册

    目录 注册小程序 小程序项目目录 小程序的全局配置 app.json 小程序的页面配置,页面.json 小程序的数据绑定 页面的 .wxml 文件和 html 性质一样 小程序的 wxss 文件 注册 ...

  3. DeDecms远程写入漏洞webshell (dedecms漏洞)

    解释下Apache解析文件的流程: 当Apache检测到一个文件有多个扩展名时,如1.php.bak,会从右向左判断,直到有一个Apache认识的扩展名.如果所有的扩展名Apache都不认识,那么变会 ...

  4. Flutter学习笔记(32)--PointerEvent事件处理

    如需转载,请注明出处:Flutter学习笔记(32)--PointerEvent事件处理 在Android原生的开发中,对于事件的处理,我们都知道事件分为down.move.up事件,对于ViewGr ...

  5. 05.DRF-Django REST framework 简介

    一.明确REST接口开发的核心任务 分析一下上节的案例,可以发现,在开发REST API接口时,视图中做的最主要有三件事: 将请求的数据(如JSON格式)转换为模型类对象 操作数据库 将模型类对象转换 ...

  6. ASP.NET Core 对Controller进行单元测试

    单元测试对我们的代码质量非常重要.很多同学都会对业务逻辑或者工具方法写测试用例,但是往往忽略了对Controller层写单元测试.我所在的公司没见过一个对Controller写过测试的.今天来演示下如 ...

  7. Linux下安装java环境

    准备工作: linux环境 xshell6 1.在Windows本地www,oracle.com下载对应的linux系统的JDK安装包,我下载的是 2.下载下来后,通过xftp远程传输到linux服务 ...

  8. opencv C++矩阵操作

    int main(){ cv::Mat src1=(cv::Mat_<float>(2,3)<<1,2,3,4,5,6); cv::Mat src2=(cv::Mat_< ...

  9. C#数据结构与算法系列(十):中缀表达式转后缀表达式

    1.具体步骤 1)初始化两个栈:运算符栈s1和储存中间结果的栈s2:2)从左至右扫描中缀表达式:3)遇到操作数时,将其压s2:4)遇到运算符时,比较其与s1栈顶运算符的优先级:     (1)如果s1 ...

  10. 7-4 List Leaves (25分) JAVA

    Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. I ...