数据类型进阶一
1.1For循环
语法:
for 变量名 in range(n):
循环体
range()是什么?
语法:
range(start,stop,[step])
start:初始值 stop:终始值 step:步长(默认为1)
注意:range()方法一般生成一段左闭右开的整数范围;
它接收的参数必须是整数,可以是负数,但是不能是浮点数等其它的类型;
它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但是不能修改元素;
它是可迭代对象,但不是迭代器;
for i in range(1,101,1):
print(i)
#打印1-100中的偶数
for i in range(0,101,2):
print(i)
1.1.1关键字break
user=52211001123
code=123456
for i in range(1,4):
u=input("请输入你的账号:")
c=input("请输入你的密码:")
if u==52211001123 and c==123456:
print("恭喜你,登录成功!")
break
else:
print("对不起,你输入的账号或者密码有误,还有"+str(3-i)+"次机会")
请输入你的账号:4414
请输入你的密码:41554155
对不起,你输入的账号或者密码有误,还有2次机会
请输入你的账号:1551656
请输入你的密码:15561652
对不起,你输入的账号或者密码有误,还有1次机会
请输入你的账号:51515115
请输入你的密码:5511616
对不起,你输入的账号或者密码有误,还有0次机会
Process finished with exit code 0
user=52211001123
code=123456
for i in range(1,5):
u=input("请输入你的账号:")
c=input("请输入你的密码:")
if i==4:
print("账号冻结")
break
if u==52211001123 and c==123456:
print("恭喜你,登录成功!")
break
else:
print("对不起,你输入的账号或者密码有误,还有"+str(4-i)+"次机会")
请输入你的密码:181825
对不起,你输入的账号或者密码有误,还有3次机会
请输入你的账号:15412626
请输入你的密码:24556165
对不起,你输入的账号或者密码有误,还有2次机会
请输入你的账号:415411626
请输入你的密码:541556
对不起,你输入的账号或者密码有误,还有1次机会
请输入你的账号:15416525
请输入你的密码:651561562
账号冻结
Process finished with exit code 0
实现方法有很多,以上都可以
1.1.2continue关键词
break和continue区别:
break:退出整个循环
continue:退出本次循环,继续执行下一次循环
1.2循环嵌套
for i in range(1,10):
for j in range(1,10):
print("房间号:"+str(i)+"0"+str(j))
....
房间号:808
房间号:809
房间号:901
房间号:902
房间号:903
房间号:904
房间号:905
房间号:906
房间号:907
房间号:908
房间号:909
Process finished with exit code 0
i=1
while i<6:
for j in range(1,10):
print(str(i)+"0"+str(j))
i+=1
....
408
409
501
502
503
504
505
506
507
508
509
Process finished with exit code 0
2、数据类型
基本数据类型可以分为三类:数值类型、序列类型、散列类型
数值类型:整数型int、浮点型float、布尔类型bool、复数类型complex
序列类型:字符串str、列表list=[]、元组touple={}
散列类型:集合set={}、字典di={“”,“”,“”}
序列类型:指一块可以存放多个值的连续内存空间,这些值按照一定的顺序排列,可以通过每个值所在的位置的编号(索引)访问他们
str1="CSDN博客论坛"
print(str1[0])
print(str1[7])
print(str1[-1])
print(str1[-8])
C
坛
坛
C
Process finished with exit code 0
2.1可变类型和不可变类型
不可变类型:数字、字符串、元组
可变类型:列表、字典、集合
s="sdadqwdq"
print(s)
s[0]="a"
print(s)
Traceback (most recent call last):
File "E:\InPrg\ProPrg\Program Folder\code\test_python\1117.py", line 59, in <module>
s[0]="a"
TypeError: 'str' object does not support item assignment
sdadqwdq
Process finished with exit code 1
因为s是字符串类型,属于不可变类型,所以报错
2.1.1字符串(增、删、改、查)
2.1.1.1 find()
范围性查找子串,返回索引值,没有就返回-1
语法:
str.find(str,beg=0,end=len(string))
·str——》指定检索的字符串
·beg——》开始索引,默认值是0
·end——》结束索引,默认字符串的长度
·len——》字符串长度
find()方法常用于检测字符串中是否包含子字符串str
s="hello,world"
print(s.find("h"))
print(s.find("world"))
print(s.find("woelld"))
0
6
-1
Process finished with exit code 0
find()只能找到一个子串的下标,默认是从下标0开始找到最后
s="python,helloworld,java,php"
print(s.find("h"))
print(s.find("h",10))
3
24
Process finished with exit code 0
2.3.1.2 index()
检测字符串中是否包含字符串str,如果指定beg(开始)和end(结束)范围,则检测是否包含在指定的范围内,这个方法与find()方法一样,只不过如果str不在string中会报错,而不是返回-1
s="python,helloworld,java,php"
print(s.index("h"))
print(s.index("hhh",10))
3
Traceback (most recent call last):
File "E:\InPrg\ProPrg\Program Folder\code\test_python\1117.py", line 70, in <module>
print(s.index("hhh",10))
ValueError: substring not found
Process finished with exit code 1
2.3.1.3 count()
返回找到的字符串个数
s="python,helloworld,java,php"
print(s.count("h"))
print(s.count("l"))
3
3
Process finished with exit code 0
2.3.1.4 strip()
去除字符串两边的空格
code=input("请输入4位数的验证码:")
data=code.strip()
if data=="ABCD":
print("验证码正确")
else:
print("验证码错误")
请输入4位数的验证码: ABCD
验证码正确
Process finished with exit code 0
2.3.1.5 startswith()、endswith()
·判断字符串是否以XX开头/结尾,得到的是一个布尔值,即False/True
zhuzhi=input("请输入住址:")
if zhuzhi.startswith("北京市"):
print("北京人口")
else:
print("非北京人口")
请输入住址:北京市朝阳区
北京人口
Process finished with exit code 0
2.3.1.6 isdigit()
判断字符串是否是数字组成,返回结果为True/
v1=input("请输入值1:")
v2=input("请输入值2:")
if v1.isdigit() and v2.isdigit():
data=int(v1)+int(v2)
print(data)
else:
print("请输入正确的数字")
请输入值1:84
请输入值2:44
128
Process finished with exit code 0
2.3.1.7 lower()、upper()
·字符串大写/小写,得到的是一个新的字符串
lower——》转小写
upper——》转大写
s="C"
s1=s.lower()
print(s1)
s2=s1.upper()
print(s2)
c
C
Process finished with exit code 0
2.3.1.8 split()
切分字符串,将字符串类型转列表,默认以空格切分,也可以指定字符切分
s="my name is yi xiao chuan"
print(s.split())
s1="python,php,java"
print(s1.split(","))
['my', 'name', 'is', 'yi', 'xiao', 'chuan']
['python', 'php', 'java']
Process finished with exit code 0
2.3.1.9 replace()
·字符串内容的替换,得到一个新的字符串
content=input("请输入评论信息:")
content1=content.replace("cao","*")
print(content1)
请输入评论信息:caocaocao
***
Process finished with exit code 0
2.3.1.10 join()
用于将序列中的元素以指定字符串连接生成一个新的字符串
常用与将列表类型转换为字符串
a=["xiaochuan","yirong","haopengyou","wanmei"]
print("".join(a))
print("-".join(a))
xiaochuanyironghaopengyouwanmei
xiaochuan-yirong-haopengyou-wanmei
Process finished with exit code 0
2.3.3字符串的公共功能
也就是字符串可以用,其它类型也可以用
·字符串是一个有序的字符集合,按照顺序排列数据类型python都为其赋予了索引的概念
·索引是从零开始的
2.3.3.1正向取(从左到右)、反向取(从右到左)
str1="hello python"
#正向取
print(str1[0])
print(str1[6])
#反向取
print(str1[-4])
h
p
t
Process finished with exit code 0
正着从0算,倒着从-1算,若超出范围则报错,下标越界
str1="hello python"
print(str1[len(str1)-1])
print(str1[-len(str1)])
n
h
Process finished with exit code 0
2.3.3.2切片(顾头不顾尾,步长)
取出索引的所有字符
str1="hello python"
print(str1[0:9])
hello pyt
Process finished with exit code 0