数据 int ,所有的功能,都放在int里
1:将字符串转换为数据
a = "123" print(type(a),a) print(a) b=int(a) #默认转换到十进制 print(type(b),b) print(b) num = "a" v = int(num,base=16) #base表示转换为16进制 print(v)
2:bit-length 当前数据的二进制,至少用n位表示
r=age.bit.length()
字符换类型
字符串变形,在pyChram中输入str, 按住Ctrl点击str可以查看str class的具体内容
capitalize() 首字母大写
casefold() 所有字母变小写,比lower()更牛逼,支持特殊字符变小写
lower() 所有字母变小写,只支持英文
upper() 所有字母变大写
count() 去字符串中寻找,寻找子序列的出现次数,可以设置开始与结束位置
center() 设置宽度,并将内容居中
endswith() 判断以什么结尾
startswith() 判断以什么开始
find() 从开始往后找,找到第一个之后,获取其位置,可设置开始与结束位置,若返回结果为-1表示没有找到
format() 格式化,将一个字符串中的占位符替换为指定的值
format_map() 格式化,传入的值为key value格式{“nane”:“yang”,“age”:“18”}
index() 作用跟find一样,不同点为index()找不到程序直接报错
isalnum() 判断字符串中是否只包含字母和数字
#首字母大写 test = "aLex" v = test.capitalize() print(v) #所有变小写 v1 = test.casefold() #更牛逼,很多的未知的对应关系变小写 print(v1) v2=test.lower() print(v2)
#center()设置宽度,并将内容居中 test="alex" v=test.center(20,"*") #20代指总宽度,*空白位置填充(一个字符,可有可无) print(v) #count() 在字符串中寻找子序列出现的次数, test1="albealexc" a = test1.count("a",1,5) #1 ,5表示寻找的开始位置与结束位置 print(a) #endswith() 以什么结尾, test2 = "alex" b = test2.endswith("x") #startswith() 以什么开始 print(b)
#center()设置宽度,并将内容居中 test="alex" v=test.center(20,"*") #20代指总宽度,*空白位置填充(一个字符,可有可无) print(v) #count() 在字符串中寻找子序列出现的次数, test1="albealexc" a = test1.count("a",1,5) #1 ,5表示寻找的开始位置与结束位置 print(a) #endswith() 以什么结尾, test2 = "alex" b = test2.endswith("x") #startswith() 以什么开始 print(b) # 从开始往后找,找到第一个之后,获取其位置 test3="alexleiao" c = test3.find("x",0,8) #在0<=x<=8之间查找.-1表示没找到 print(c) # index()找不到直接报错 test3="alexleiao" c = test3.index("a",0,8) #在0<=x<=8之间查找 print(c) #格式化,将字符串中的占位符替换为指定的值 test4="I am {name},age {a}" print(test4) v = test4.format(name="alex",a=18) #v = test4.format("alex",18) #v = test4.format.map({"name":"alex","a":18}) print(v) #判断字符串是否只包含字母和数据 test5="usfe980_" m=test5.isalnum() print(m)
expandtabs() 制表
isalpha() 判断是否全为字母
isdecimal() 判断当前字符串是否全为数字
isdigit() 判断当前字符串是否全为数字
#expandtabs() 断句20 a = "username password mail yangyl 123 yang@q.com yangyl 123 yang@q.com yangyl 123 yang@q.com" v = a.expandtabs(20) print(v) ########结果 username password mail yangyl 123 yang@q.com yangyl 123 yang@q.com yangyl 123 yang@q.com
#当前输入是否是数字 test = "123" v1=test.isdecimal() v2=test.isdigit() v3=test.isnumeric() #支持中文的数字:二 print(v1,v2) # 输入是布尔型
重要的变换:
join() 将字符串中的每一个元素按照指定分隔符进行拼接
split() 分割, 不包含分割的元素
partition() 分割,包含分割的元素,只分割为三部分
find() 查找,到不到返回-1
strip() 去除,
upper()、
lower()
#join()的使用方法,join的内部会循环此字符串
test = "test" t="_".join(test) print(t) print结果: t_e_s_t
#判断是否全部是大小写和转换为大小写 test="Alex" v1=test.islower() v2=test.lower() print(v1,v2) v3=test.isupper() v4=test.upper() print(v3,v4) #去除左右空白,去除/t /n,也可去除指定字符(有限最多匹配) test=" alex " v1=test.lstrip() v4=test.lstrip("x") v2=test.rstrip() v3=test.strip() print(v1) print(v2) print(v3)
次要;索引,下标,获取字符串中某一个字符
test="alex" v = test[0] print(v)
v1=test[0:2] #切片,索引范围 0<=x<2 ,-1表示最后一个字符
print(v1)
#len() 获取当前字符串中由几个字符组成 test="你好世界" v=len(test) print(v ) ###答应结果## 3 在python3中得到3,在python2.7中得到9
#length()
#for循环
for 变量名 in 字符串:
变量名
eg:
test = "你好中国武汉" for yyl in test: print(yyl)
#replace() 替换
#range()
创建连续的数字range(100),range(1,100,5) #5是步长
#将文字和索引打印出来 test = input(">>>") l=len(test) print(l) for m in range(l): print(m,test[m])
##########################################python基本数据类型课后作业##############################################
1、 阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
请写出输出结果
alex
Alex
2、 写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
a. 移除 name 变量对应的值两边的空格,并输入移除后的内容
name=" AleX " n1=name.strip() print(n1)
b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
n1=name.startswith("al") print(n1) #结果为True
c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
n1=name.endswith("X") print(n1) #结果为False
d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
n1=name.replace("l","p") print(n1)
e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
n1=name.split("l") print(n1)
f. 请问,上一题 e 分割之后得到值是什么类型(可选)?
列表类型
g. 将 name 变量对应的值变大写,并输出结果
n1=name.upper() print(n1)
h. 将 name 变量对应的值变小写,并输出结果
n1=name.lower() print(n1)
i. 请输出 name 变量对应的值的第 2 个字符?
n1=name[1] print(n1)
j. 请输出 name 变量对应的值的前 3 个字符?
for i in range(3): print(name[i])
k. 请输出 name 变量对应的值的后 2 个字符?
print(name[2:-1])
l. 请输出 name 变量对应的值中 “e” 所在索引位置?
n1=name.find("e") print(n1)
m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo
l=len(name) print(name[0:(l-1)])
3、 字符串是否可迭代对象?如可以请使用 for 循环每一个元素?
字符串可以迭代对象(可以被for 循环的就是可迭代对象)
name="你好中国" l=len(name) for i in range(l): print(i,name[i])
4、 请用代码实现:
a. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
b. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] (可选)
li="alexericrain" n1="_".join(li) print(n1) li1=['alex', 'eric', 'rain'] n2="_".join(li1) print(n2)
5、 Python2 中的 range 和 Python3 中的 range 的区别?
对于汉字的打印个数不同
6、 实现一个整数加法计算器:
如:content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9
num1=input("请输入加法数字,如5+9:") tmp_str=num1.split() tmp_str1="".join(tmp_str) li=tmp_str1.split("+") num2=li[0].isdecimal()&li[1].isdecimal() num6=str(num2) if num6 == "True": num3=int(li[0]) num4=int(li[1]) num5=num3+num4 print(num5) else: print("请输入正确的格式!")
7、 计算用户输入的内容中有几个十进制小数?几个字母?
如:content = input('请输入内容:') # 如:asduiaf878123jkjsfd-213928
#做题思路 c1=0 c2=0 val=input(">>>") for itme in val: 如果itme是数字: c1+=1 如果itme是字母: c2+=1
8、 制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实。如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
name=input("请输入您的姓名:") dir=input("请输入地址:") things=input("请输入您喜欢干的事情:") inp="敬爱可爱的{name},最喜欢在{dir}干{things}" n1=inp.format(name=name,dir=dir,things=things) print(n1)
9、 制作随机验证码,不区分大小写。
流程:
- 用户执行程序
- 给用户显示需要输入的验证码
- 用户输入的值
用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
生成随机验证码代码示例:
def check_code(): import random checkcode="" for i in range(4): current=random.randrange(0,4) if current != i: temp=chr(random.randint(65,90)) else: temp=random.randint(0,9) checkcode +=str(temp) return checkcode while True: code = check_code() print(code) inp = input("请输入验证码:") lower_code=code.lower() lower_inp=inp.lower() if lower_inp == lower_code: print("验证成功,欢迎") break else: print("验证码不正确,请重新输入!")
10、 开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
如 "苍老师" "东京热",则将内容替换为 ***
li=["东京热","苍老师"] inp = input("请出入内容:") new_inp=inp.replace(li[0],"***") new_inp1=new_inp.replace(li[1],"***") print(new_inp1)
11、 制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式大隐