Python基础3
- 基础数据类型、int、bool、str及其常用的操作方法、for循环
-
基础数据类型总览
- 便于计算机区分数据,做对应类型的操作
- 123、45、5 int 做运算操作
- '你好' '恭喜发财' str 存储少量的数据
- True False bool 用于判断
- [123,'hello',[1,2,3]] list 容器类数据类型 存储大量的数据
- (123,'hello',[1,2,3]) tuple 容器类数据类型 存储大量的数据,不可改变里面的元素
- {'name':'alex'} dict 容器类数据类型 存储大量的关联型数据,查询速度非常快
- set 交集、并集、差集
-
int :主要用于运算与不同进制的转换
-
二进制转换成十进制0001 1010 ------> 24*1+23*1+22*0+1*21+2^0*0 = 26
-
十进制转换成二进制2|26 -------->0
2|13 -------->1
2|6 -------->0
2|3 -------->1
1
26 ----------->逆序排列 11010 ----补全---> 0001 1010 -
int数据类型的方法:bit_length() ---------> 将整数转换成二进制所占的有效位数
i = 26 print(i.bit_length()) 结果: 5 Process finished with exit code 0
-
-
int、bool、str之间的转换:
-
int<------>bool之间的转换:int------->bool:非零即True,0为Falsebool------>int: True为1,False为0
i = 26 print(bool(i)) i = 0 print(bool(i)) 结果: True False Process finished with exit code 0 ---- i = True print(int(i)) i = False print(int(i)) 结果: 1 0 Process finished with exit code 0 -
str<--------->bool之间的转换:str--------->bool:非空即True,空为Falsebool--------->str:这个无意义只是加上引号
s = "nihao" print(bool(s)) s = "" print(bool(s)) #注意区分空白字符与空的区别 s = " " print(bool(s)) 结果: True False True Process finished with exit code 0 ---- b = True print(str(b),type(str(b))) b = False print(str(b),type(str(b))) 结果: True <class 'str'> False <class 'str'> Process finished with exit code 0 -
int<-------->str之间的转换:int-------->str:任何数字都可以转换成字符串类型str-------->int:只有数字类型的字符串才能转换成int类型
s = "1234" print(int(s),type(int(s))) s = "hello" print(int(s),type(int(s))) 结果: Traceback (most recent call last): 1234 <class 'int'> File "/Users/suncong/PycharmProjects/python_project/day3/for.py", line 10, in <module> print(int(s),type(int(s))) ValueError: invalid literal for int() with base 10: 'hello' ---- i = 1234 print(str(i),type(str(i))) 结果 1234 <class 'str'> Process finished with exit code 0 -
补充:
s = input("请输入:") if s: #if语句的条件最终都会转换为bool值,用做判断 print("有内容") else: print("无内容") 结果: 请输入:a #非空为True 有内容 请输入: #空为false 无内容
-
-
字符串的索引和切片
-
索引s[index]:只能取出一个字符,index:从左至右,从0开始,第一个字符对应0,以此类推。从右至左,从-1开始,以此类推
s = "hello python!" print(s[0]) print(s[-1]) 结果: h ! Process finished with exit code 0 -
切片s[start:end:length],start表示起始位置,end表示终止位置,length表示步长,length为正数,表示从左至右显示字符串,为负数,则是从右至左显示字符串
-
start < end:表示从前向后展示,length为正
s = "hellopython!" #start<end,这里比较出的大小是在同一方向上的 print(s[2:-1:1]) #将-1转换为从左至右应该为10,故而2是小于10的 结果: llopython Process finished with exit code 0 -
start > end:表示从后向前展示,length为负
s = "hellopython!" print(s[8:2:-1]) 结果: htypol Process finished with exit code 0
-
-
-
字符串的操作方法:
-
改变全部字符的大写、小写:upper()、lower()
s = "hellopythON!" print(s.upper()) print(s.lower()) 结果: HELLOPYTHON! hellopython! Process finished with exit code 0 -
匹配起始位置与结尾位置的字符串,匹配成功返回True,否则返回False:startswith()、endswith()
s = "hellopythON!" print(s.startswith("he")) print(s.endswith("!")) 结果: True True Process finished with exit code 0 -
替换指定字符串为新字符串:replace(old_str,new_str,count),count可以指定替换次数,默认全部替换
s = "lucy是个女神,lucy长得很漂亮,lucy是个好学生" print(s.replace("lucy","lily")) print(s.replace("lucy","lily",1)) 结果: lily是个女神,lily长得很漂亮,lily是个好学生 lily是个女神,lucy长得很漂亮,lucy是个好学生 Process finished with exit code 0 -
去除字符串两边空白字符:strip(),还可以用其去掉字符串两边的指定字符
s = "\npython\n" print(s) print(s.strip()) 结果: python python Process finished with exit code 0 --- s = "rre苹果edu" print(s) print(s.strip('redu')) #只需指定要去掉字符的交集即可 结果: rre苹果edu 苹果 Process finished with exit code 0 -
字符串转换为列表:split(seq,count),seq指定分隔符,默认为空白字符,count可以指定最大分割次数,默认全部分割
s = "lily:lucy:lisa" print(s.split(":")) 结果: ['lily', 'lucy', 'lisa'] Process finished with exit code 0 ---- s = "lily:lucy:lisa" print(s.split(":",1)) 结果: ['lily', 'lucy:lisa'] Process finished with exit code 0 -
字符串的拼接,也可将列表转换为字符串类型:"拼接符".join(str/list)
l = ['lily', 'lucy', 'lisa'] s = ":".join(l) print(s) 结果: lily:lucy:lisa Process finished with exit code 0 ---- s = "lily" s2 = ":".join(s) print(s2) 结果: l:i:l:y Process finished with exit code 0 -
统计指定字符在字符串中出现的次数:count()
s = "lily" print(s.count("l")) 结果: 2 Process finished with exit code 0 -
format()的三种用法:
-
{}.format()
name = input("请输入姓名:") age = input("请输入年龄:") sex = input("请输入性别:") msg = ''' ---------info of {}---------- name:{} age:{} sex:{} '''.format(name,name,age,sex) print(msg) 结果: 请输入姓名:lily 请输入年龄:18 请输入性别:male ---------info of lily---------- name:lily age:18 sex:male -
{name1,name2......}.format(name1=v1,n2=v1......)
name = input("请输入姓名:") age = input("请输入年龄:") sex = input("请输入性别:") msg = ''' ---------info of {n1}---------- name:{n1} age:{n2} sex:{n3} '''.format(n1=name,n2=age,n3=sex) print(msg) 结果: 请输入姓名:lily 请输入年龄:18 请输入性别:male ---------info of lily---------- name:lily age:18 sex:male Process finished with exit code 0 -
{0,1,2......}.format(v1,v2,v3)
name = input("请输入姓名:") age = input("请输入年龄:") sex = input("请输入性别:") msg = ''' ---------info of {0}---------- name:{0} age:{1} sex:{2} '''.format(name,age,sex) print(msg) 结果: 请输入姓名:lily 请输入年龄:18 请输入性别:male ---------info of lily---------- name:lily age:18 sex:male Process finished with exit code 0
-
-
判断字符串的组成,返回True,False:isalnum()字符串是否只由数字字母组成、isalpha()只由字母组成、isdecimal()只由十进制数组成
s = "123hello" s1 = "hello" s2 = "123" print(s.isalnum()) print(s1.isalpha()) print(s2.isdecimal()) 结果: True True True Process finished with exit code 0
-
-
成员运算in/not in,适用于所有数据类型
-
in、not in
s = ["hello","hi",'123'] s1 = "123" print(s1 in s) print(s1 not in s) 结果: True False Process finished with exit code 0 --- s = ["hello","hi",'123'] s1 = "12" print(s1 in s) print(s1 not in s) 结果: False True Process finished with exit code 0
-
-
for循环
- for循环为有限循环:
-
for 变量 in 可迭代对象: 代码
s1 = "吹梦到西州" for i in s1: print(i) 结果: 吹 梦 到 西 州 Process finished with exit code 0 -
for.......else用法与while.....else一样,如果循环被break打断则不会执行else语句
-
- for循环为有限循环:
-
len(),获取可迭代对象元素的个数
s1 = "吹梦到西州" print(len(s1)) 结果: 5 Process finished with exit code 0
浙公网安备 33010602011771号