一、for循环补充
>>>range(1,5,2)# 起始位置为1,结束位置为5(但其骨头不顾尾,所以不输出5),步长为2
输出结果:[1, 3]
>>>
>>>range(1,5)# 省略步长,默认为1
输出结果:[1, 2, 3, 4]
>>>
>>>range(5) # 省略起始位置与步长,默认起始位置为0,步长为1
输出结果:[0, 1, 2, 3, 4]
>>>
>>>for xin range(5,1,-1):
print(x) #range可以用于倒着取数值
例1.
for x in range(0,5,1):
print(x)
例2.
for xin range(5,1,-1):
print(x)
二、可变与不可变类型
1、可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型。
2、不可变类型:值改变,id也变,证明是产生了新值,并没有改变原值,原值是不可变类型。
例1:
x =123
print(id(x))
x =456
print(id(x))
例2:
l1=[111,222,333]
print(id(l1))
l1[0] =1111111111111111
print(l1)
print(id(l1))
三、数字类型
1.整数型(int)
1、用途:年龄、个数、号码、出生年等
2、定义方式
age =18 # age = int(18)
int功能可以把纯数字的字符串转换成int类型
res =int("18")
# res = int("1.8")
print(type(res))
了解(***)(十进制的转化)
print(bin(11))# 0b1011 (十进制转变为二进制)
print(oct(11))# 0o13 (十进制转变为八进制)
print(hex(11))# 0xb (十进制转变为十六进制)
3、常用操作+内置的方法
算数运算符与比较运算
2.浮点型(float)
1、用途:薪资、身高、体重等
2、定义方式
salary =3.1 # salary = float(3.1)
float功能可以把浮点数组成的字符串转换成float类型
res = float("1.8")
print(type(res))
# 3、常用操作+内置的方法
# 算数运算符与比较运算
四、字符串类型
1、用途:记录描述性质的状态,例如名字、性别、国籍等
2、定义方式:在引号('',"",'''''',""""""")内包含一串字符串
s ="hello" # s = str("hello")
str功能可以把任意类型转换成str类型
res=str([1,2,3]) # "[1,2,3]"
print(type(res))
3、常用操作+内置的方法
=======================>优先掌握的操作:
1、按索引取值(正向取+反向取) :只能取
s ="hello world"
print(s[0],type(s[0]))
print(s[-1])
s[1] = "E" # 字符串不能修改
s[2222]
s[11] = "A"(这是非法操作,没有办法运行)
2、切片(顾头不顾尾,步长)=>属于拷贝操作
s ="hello world"
new_s=s[1:7] #默认步长为1
print(new_s)
print(s) #(中间取得是new_s,并不会对字符串s有任何操作)
new_s=s[1:7:2] #起始位置为1,最终位置为7,步长为2
print(new_s)
print(s)
s ="hello world"
new_s=s[:7:2]
new_s=s[::2]# 0 2 4 6 8 10
print(new_s)
# new_s=s[::] # 完整拷贝字符串,只留一个冒号就可以new_s=s[:]
s ="hello world"
new_s=s[:]
print(new_s)
3、长度len
s = "hello world"
print(len(s))
res=print("sfd")
print(res)
4、成员运算in和not in
s = "hello world"
print("hel" in s)
print("egon" not in s) # 语义明确,推荐使用
print(not "egon" in s)
5、移除空白strip
s = " \n hel lo \t "
new_s = s.strip()
print(new_s)
print(s) # 没有改变原字符串
应用案列:
cor_account ="784192462"
cor_pwd ="56814698"
tag =True
while tag:
inp_account =input("请输入您的账号:").strip("*""#"" ")
inp_pwd =input("请输入您的密码:").strip("*""#"" ")
if inp_account == cor_accountand inp_pwd == cor_pwd:
print("登陆成功!")
tag =False
else:
print("登陆失败!")
6、切分split:把字符串按照某个分隔符切成一个列表
userinfo ="egon_dsb:123:18:3.1"
res = userinfo.split(":")
print(res[0])
print(res)
print("-".join(res))
# 纯字符串组成的列表
l = ["aaaa", "bbb", "ccc"]
res =":".join(l)
print(res, type(res))
# 7、循环
for i in "hello":
print(i)
# =======================>需要掌握的操作:
1、strip,lstrip,rstrip
# print("***hello***".strip("*"))
# print("***hello***".lstrip("*"))
# print("***hello***".rstrip("*"))
2、lower,upper
msg ="AbCDEFGhigklmn"
res = msg.lower()
mes = msg.upper()
nes=msg.swapcase()
print(res)
print (mes)
print(nes)
3、startswith,endswith
msg ="python is the best language"
print(msg.startswith("py"))
print(msg.endswith("ge"))
print(msg.endswith("c"))
5、split,rsplit
userinfo="egon:123:18"
print(userinfo.split(":"))
print(userinfo.split(":",1))
print(userinfo.rsplit(":",1))
6、join
userinfo ="egon_dsb:123:18:3.1"
res = userinfo.split(":")
print("-".join(res))
7、replace
msg ="*** 56814698 ***"
res=msg.replace('*','').replace(' ','')
res=msg.strip('*').replace(' ','')
print(res)
s="java is the best language and java is the most convenient language"
res=s.replace('java','python')
print(res)
s="java is the best language and java is the most convenient language"
res=s.replace('java','python',1)
print(res) # python 代替第一个java
4、format的三种玩法
4.1 %s的方式
name = "egon"
age = 18
res1="my name is %s my age is %s" % (name,age)
print(res1)
4.2 format的方式
name ="Bob"
age =25
res1="my name is {} my age is {}".format(name,age)
print(res1)
name ="Bob"
age =25
res1="{0}{0}{0}{1}".format(name,age)
print(res1)
res1="my name is {name} my age is {age}".format(age=25,name="Bob")
print(res1)
4.3"f''的用法
name ="egon"
age =18
res1 =f"my name is {name} my age is {age}"
print(res1)
了解:f搭配{}可以执行字符串中的代码
res=f'{len("hello")}'
print(res)
f'{print("hello")}'
f包含的字符串可以放到多行
name ="egon"
age =18
res1 =f"my name is {name} my age is {age}"
res1 =f"my name is {name}" \
f" my age is {age}" #换行都有f" "和 \
#{}内不能有\以及#
print(f'my name is {{egon}}')
print('胜率是 %s%%' %70) #第一个%可以去除第二个%的特殊意义。
了解:https://zhuanlan.zhihu.com/p/110406030
8、isdigit:判断字符串是否由纯数字组成
# print("adsf123".isdigit())
# print("123".isdigit())
# print("12.3".isdigit())
age =input('>>>: ')# age = " 25 "
if age.isdigit():
age =int(age)
if age >25:
print('猜大了')
elif age <25:
print('猜小了')
else:
print('猜对了')
else:
print('必须输入数字')
# =======================>了解的操作:
# ======================================该类型总结====================================
# 存一个值or存多个值
# 有序or无序
# 可变or不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)