一 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. 03-Python基础2

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...

  2. 微信小程序实现连续扫码功能(uniapp)

    注:本文使用的是 uniapp 语法. 微信小程序提供了扫码API:wx.scanCode,但它只能扫一次码,想要实现连续扫码,需要借用 camera 组件.camera 组件不仅能拍照,还具有扫码功 ...

  3. CocosCreator实现微信排行榜

    1. 概述 不管是在现实生活还是当今游戏中,各式各样的排名层出不穷.如果我们做好一款游戏,却没有实现排行榜,一定是不完美的.排行榜不仅是玩家了解自己实力的途径,也是游戏运营刺激用户留存的一种途径.在微 ...

  4. 使用vuex中的store存储数据

    Vuex是一个专门为Vue.js应用程序开发的状态管理模式,这个状态自管理应用包括三个模式 state 驱动应用的数据源 view 以声明方式将state映射到视图 actions 响应在view上的 ...

  5. 虹软AI 人脸识别SDK接入 — 参数优化篇

    引言 使用了免费的人脸识别算法,感觉还是很不错的,但是初次接触的话会对一些接口的参数有些疑问的.这里分享一下我对一些参数的验证结果(这里以windows版本为例,linux.android基本一样), ...

  6. CentOS 安装 VMware Tools 详细方法

    点击虚拟机,选择安装vmware Tools工具 弹出上面的界面,右键选择奖上面的vmwaraTools.tar.gz解压到你要解压的目录下面 记得一定要使用root用户,进入到解压的目录 然后执行 ...

  7. Python 简明教程 --- 6,Python 控制流

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io Talk is cheap, show me the code. -- Linus Torvalds ...

  8. 云计算课程实验之安装Hadoop及配置伪分布式模式的Hadoop

    一.实验目的 1. 掌握Linux虚拟机的安装方法. 2. 掌握Hadoop的伪分布式安装方法. 二.实验内容 (一)Linux基本操作命令 Linux常用基本命令包括: ls,cd,mkdir,rm ...

  9. 计算机网络之tcp三次握手

    客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西:由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它们之间都是经过由TCP创建的一个从客 ...

  10. layui动态添加的元素click等事件触发不了的解决办法

    在页面加载完成时候 '.add_project' 元素是可以触发click时间的,当动态添加 '.add_project' 时候,新添加的元素却触发不了click事件,类似下面的写法: $(" ...