03数据类型、str型内建方法,for循环
一、数据类型总览
- int型:整型
- str型:字符型
- bool型:True False
- list型:列表 [12,True,'hello',[1,2,3]],存储大量数据
- tuple型:元组,存储大量数据,不可修改
- dict型:字典{'name':'jack'},查询速度很快,存储大量数据
二、int、str、bool型
-
int主要用于计算
-
加,减,乘,除
-
进制转换
-
二进制转成十进制
-
0001 1010等于
7654 3210
2 ** 0 *0 + 2 ** 1 * 1 + 2 ** 2 * 0 + 2 ** 3 * 1 + 2 ** 4 * 1
-
-
十进制转换成二进制
- 42等于
-
-
-
int和str与bool转换
-
int转换成bool
- print(bool(10)) ---> True
- print(bool(0)) ----> False
- 非零即真
-
str转成bool
- print(bool(' ')) ----> True
- print(bool('')) ----> False
- 非空即真
- " "空格是特殊字符,不是空字符
-
int转成str
- print(str(10)) ---> '10'
-
str转成int
-
字符串转换成整型,必须是纯数字字符串才能转换成整型
-
print(int('10')) ---> 10
# 字符串作为判断条件 s = input("请输入:") if s: print("您输入的是:{}".format(s)) else: print("您没有输入内容!")
-
-
二、字符串操作
-
str的下标,索引
- s1='python全栈XX期'
- 字符串从左至右有顺序,叫做下标,下标可以进行索引
- 字符串的值:p y t h o n 全 栈 X X 期
- 下标的值 :0 1 2 3 4 5 6 7 8 9 10
- print(s1[3]) ---> 输出s1字符串,下标为3的元素,结果为'h'
- print(s1[-1]) ---> 输出s1字符串,最后一个元素,结果为'期'
- s1='python全栈XX期'
-
str的切片,切片是顾头不顾尾,左闭右开形
-
s1='python全栈XX期'
# 取出"python"这个字符串 print(s1[0:6]) # 结果为:“python”#取出"全栈XX期" print(s1[6:]) # 右边不写,代表取到最后一位- 步长,步长就是隔几个取值,默认是1,连续取值
s1='python全栈22期' print(s1[:6]) # python print(s1[6:]) # 全栈22期 print(s1[:5:2]) # pto- 倒序取值,必须要加上倒序步长。如果不加不会报错,也不出正确结果
s1='python全栈22期' print(s1[-1:-6:-1]) # 期22栈全- 字符串逆序
s1='python全栈22期' print(s1[::-1]) # 期22栈全nohtyp print(s1[-1:0:-1])
-
-
练习
-
有字符串s="123a4b5c"
- 通过对s切片形成新的字符串s1,s1="123"
- 通过对s切片形成新的字符串s2,s2="a4b"
- 通过对s切片形成新的字符串s3,s3="1345"
- 通过对s切片形成新的字符串s4,s4="2ab"
- 通过对s切片形成新的字符串s5,s5="c"
- 通过对s切片形成的字符串s6,s6="ba2"
s="123a4b5c" s1 = s[:3] s2 = s[3:6] s3=s[::2] s4=s[1:-2:2] s5=s[-1] s6=s[-3::-2]
-
-
常用内置方法
-
upper:全部变成大写字母
-
lower:全部变成小写字母
- 有返回值,不会对原字符串操作
- 遇到数字和汉字,直接跳过
s='abCdEFg' s1=s.upper() s2=s.lower() print(s1) print(s2) # ABCDEFG # abcdefg-
应用,验证码不区分大小写
username=input("请输入用户名:") password=input("请输入密码:") print("验证码为:QwEa") code = "QwEa" your_code=input("请输入验证码,不区分大小写:") if username == 'admin' and password == '123456': #把验证码全部转换成小写的 if your_code.lower() == code.lower(): print("验证码输入正确") else: print("验证码输入错误!") else: print("用户名或密码错误!")
-
startswith:判断是否以“XXX”开始,不常用
-
endswith:判断是否以"XXX"结束,不常用
- 支持切片,startswith('B',3),表示第三个字符是不是以B开始的
s="hello,python" print(s.startswith('h')) # True #判断s字符串是否以h开头,如果是,则返回True print(s.startswith('e',1)) # True #判断s字符串中索引为1的元素是否是e -
replace:元素替换
- str.replace(old,new,count)
- count可以不写,默认是全部
msg="我喜欢java语言,我要坚持学习java" msg1=msg.replace("java","python") print(msg) print(msg1) # 结果如下,默认把msg中所有的java替换成了python # 我喜欢java语言,我要坚持学习java # 我喜欢python语言,我要坚持学习python - str.replace(old,new,count)
-
strip:去掉字符串首尾的字符
- str.strip(),默认去除\t,\n,空格等
- str.strip("qwert"),去除字符串首尾中,包含括号中的字符
msg="\t\n 你好\thello\npython\n\n\n" msg1=msg.strip() print(msg1) # 结果如下,只留下了中间的特殊符号: 你好 hello python msg="qwer你w好,r中国!ewrq" msg1=msg.strip("rweq") print(msg1) # 结果如下: #你w好,r中国! -
split:把字符串分割开,返回值是列表
- str.split():默认是按照空格分割
- str.split("😊:指定分隔符为":"
- str.split(":",2):指定分隔符为":",并且只分割前两个,后面的不管
msg="python java c++ php shell" msg1=msg.split() print(msg1,type(msg1)) # 结果如下 ['python', 'java', 'c++', 'php', 'shell'] <class 'list'>- 如果字符串的开头就是指定的分割符,转换成列表时,列表第一个元素是空的。
msg=":python:java:c++:php:shell" msg1=msg.split(":") print(msg1) #对于msg2,只分割前两个 msg2=msg.split(":",2) print(msg2) ## 结果如下: ['', 'python', 'java', 'c++', 'php', 'shell'] ['', 'python', 'java:c++:php:shell'] -
join:以指定字符连接,返回一个新的字符串,返回值是字符串
- ":".join(str) :把str字符串用“:”连接起来,生成一个新的字符串。
- str可以是一切可迭代对象。
s1="-" s2="*" string="python" print(s1.join(string)) #print("-".join("python")) print(s2.join(string)) #print("*".join("python")) # 结果如下: p-y-t-h-o-n p*y*t*h*o*n -
count:统计某个字符出现的次数。
- str.count("a"):统计a在str中出现的次数
msg="asdsafadabadgadsb" print(msg.count("a")) # 结果为: 6 -
format:格式化输出
-
第一种用法:大括号占位,后面一一对应。
msg="我叫{},今年{},性别{}".format('python',25,'男') print(msg) # 结果如下: 我叫python,今年25,性别男 -
第二种用法:前面占位符指定对应后面的位置
msg="我叫{1},我爱{0},同学也爱{0}".format("python","jack") print(msg) # 结果如下: 我叫jack,我爱python,同学也爱python -
第三种用法:指定变量名,后面写上变量的值
msg="我叫{name},我爱学习{yuyan},同事也爱{yuyan}".format(yuyan="python",name="jack") print(msg) # 结果如下: 我叫jack,我爱学习python,同事也爱python
-
-
is系列方法:
- isalmun():判断字符串是否由数字和字母组成
- isalpha():判断字符串是否是纯数字
- isdecimal():判断是否是十进制数字
-
三、for循环
-
语法格式
格式一: for 变量 in iterable: pass 格式二: for 变量 in iterable: pass else: pass- 一般用在循环次固定的情况下
- for...else...和while...else...的用法是一样的,如果for正常结束,就执行else,否则就不执行
- 也可以配合break和continue使用
本文来自博客园,作者:majic_jie,转载请注明原文链接:https://www.cnblogs.com/majic-jie/p/14456223.html

浙公网安备 33010602011771号