一 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. Excel只想显示一部分日期,怎样把其余部分隐藏起来?

      问题:只想显示一部分日期,怎样把其余部分隐藏起来? 方法:分列 Step1:选中需要修改的单元格——数据——分列. Step2:固定宽度——点击下一步. Step3:在建立分列处单击鼠标(若想取消 ...

  2. 小师妹学JVM之:GC的垃圾回收算法

    目录 简介 对象的生命周期 垃圾回收算法 Mark and sweep Concurrent mark sweep (CMS) Serial garbage collection Parallel g ...

  3. Android学习笔记长按事件的处理

    常见的长按事件 代码示例: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns ...

  4. 手机商品分享样式(纯html+css)

    效果图: html: <!DOCTYPE html> <html lang="en"> <head>     <meta charset= ...

  5. Vue错误汇总

    1.Vue导入js后没反应{{msg}}仍是{{msg}} 错误原因:js里写错了,或者没new一个Vue html页面: 解决方法:代码加入 new

  6. 爬取B站弹幕并且制作词云

    目录 爬取弹幕 1. 从手机端口进入网页爬取找到接口 2.代码 制作词云 1.文件读取 2.代码 爬取弹幕 1. 从手机端口进入网页爬取找到接口 2.代码 import requests from l ...

  7. yum 安装Mysql8.0

    系统: CentOS 7(在CentOS 7中默认有安装MariaDB,这个是mysql的分支,一般来说还是使用自己安装的MySQL比较好) 1.下载并安装MySQL wget -i -c https ...

  8. 5、struct2的获得jsp参数的第三种方式

    在前面已经讲解了通过在action中直接通过jsp的参数和ModelDiver的方式获得浏览器传递的参数,下面我们介绍第三种方式,也是在项目开发中推荐的方式 action不需要在实现ModelDriv ...

  9. python 类的内置函数2

    必须明确创建对象的过程: 先创建空对象,执行初始化将属性存储到对象的名称空间中! 所以在__call__函数中必须完成这两步操作,同时将初始化完成的对象返回给调用者 一旦覆盖了__call__函数,就 ...

  10. 分享 HT 实用技巧:实现指南针和 3D 魔方导航

    前言 三维场景时常需要一个导航标识,用来确定场景所处的方位. 一般有两种表现形式:指南针.小方盒(方位魔方). 参考一下百度百科中的 maya 界面,可以看到右上角有一个标识方位的小盒子,说的就是它: ...