整型相关方法、浮点型相关方法、字符串的内置方法、列表的内置方法、练习
作者:互联网
作业讲解
1.编写代码打印出下列图形(ps:for循环嵌套)
"""
*****
*****
*****
*****
"""
解题思路:
1.想办法打印出第一排的*号(*****)
2.再想办法打印四排的(*****)
for i in range(4):
for i in range(5):
print("*", end="") # end的作用就是将print自带的换行符用end指定的str代替
print("")
数据类型的内置方法简介
1.内置方法:每个数据类型自带的功能
2.数据类型:整型、浮点型、布尔值、字符串、列表、元组、字典、集合
3.使用数据类型的内置方法统一采用句点符(.) 格式:数据类型.方法名()
eg:str.字符串具备的方法()
s1 = 'nihao'
s1.字符串具备的方法()
ps:可借用编辑器自动提示数据类型的内置方法 eg:输入"list."即可查看list有哪些内置方法
整型(int)相关方法
1.关键字:int()
2.整型没有内置方法 主要用于计算
3.类型转换:int(待转换的数据) 其中带转换的数据(字符串)必须是纯数字,即使有小数点也不行
eg:
print(type(int(('123')))) # <class 'int'>
print(type(int('123aaa'))) # 报错
print(type(int("12.1"))) # 报错
4.进制转换:二进制、八进制、十进制、十六进制的相互转换
(1).十进制转其他进制:bin()将十进制转二进制、oct()将十进制转八进制、hex()将十进制转十六进制
eg:
print(bin(100)) # 0b1100100 0b是二进制的标识
print(oct(100)) # 0o144 0o是八进制的标识
print(hex(100)) # 0x64 0x是十六进制的标识
ps:如果数字前面没有任何标识 默认就是十进制
(2).其他进制转十进制:包括自动识别进制数、人为识别进制数
自动识别进制数:print(int(0b1100100)) # 100
print(int(0o144)) # 100
print(int(0x64)) # 100
人为识别进制数:print(int('0b1100100', 2)) # 100
print(int('0o144', 8)) # 100
print(int('0x64', 16)) # 100
浮点型(float)相关方法
1.关键字:float
2.类型转换:float(待转换数字)
eg:
print(float('123')) # 123.0
print(type(float('123'))) # <class 'float'>
print(float(123)) # 123.0
print(type(float(123))) # <class 'float'>
print(float('123a123')) # 只能纯数字
print(float(123.233)) # 只能识别一个小数点
print(float('12.2')) # 12.2
补充说明
python对数字不敏感 很容易出错
但是在人工智能、数据分析、金融量化等领域有着非常重要的角色,其原因是基于python开发的模块是非常好的,例如numpy、pandas、matplotlib
字符串相关方法
1.关键字:str
2.类型转换:兼容所有数据值(整型、浮点型、布尔值、列表、元组、集合、字典)
eg:
print(type(str(11)))
print(type(str(11.1)))
print(type(str(True)))
print(type(str([11, 22, 33])))
print(type(str({'name': 'nana'})))
print(type(str((1,2,3))))
print(type(str({1,2,3,4})))
3.需要掌握的内置方法(字符串调用内置方法 不是改变原数据 而是产生了新数据)
s1 = 'hello world'
1.索引取值:单个字符,支持负数
eg:
print(s1[6]) # w
print(s1[-2]) # l
2.切片取值:多个字符,支持负数,切片的顺序默认从左往右
eg:
print(s1[0:3]) # hel 前闭后开
print(s1[-1:-4]) # 切片的顺序默认从左往右
print(s1[-1:-4:-1]) # dlr 可以通过第三个参数的正负一 控制方向
print(s1[-4:-1]) # orl
3.间隔/方向
eg:
print(s1[:]) # hello world
print(s1[:4]) # hell
print(s1[3:]) # lo world
print(s1[::2]) # hlowrd 间隔2两字符(隔一个取一个)
print(s1[0:5:2]) #hlo
4.统计字符串中字符的个数(空格也算字符) len()
eg:
print(len(s1)) # 11
print(len("hello world")) # 11
5.移除字符串首尾指导的字符 str.strip() str.lstrip() str.rstrip()
应用:在用户输入密码、用户名等功能时,常常需要用到.strip()
eg:
name = ' nana '
print(len(name)) # 8
print(len(name.strip())) # 4
s2 = '$$nana$$'
print(s2.strip('$')) # nana
print(s2.lstrip("$")) # nana$$
print(s2.rstrip("$")) # $$nana
6.按照指定的字符切割字符串 str.split() str.rsplit() str.split("",maxsplit=n)
当字符串中出现了连续的的特征符号,应该考虑使用切割操作 str.split()
eg:
info = 'jason|123|read'
res = info.split('|') # 切割字符串之后结果是一个列表
print(res,type(res)) # ['jason', '123', 'read'] <class 'list'>
name,pwd,hobby = info.split('|') # 解压赋值 需要保证左边的名字和右边的数据值,个数一致
print(name,pwd,hobby)
print(info.split('|',maxsplit=1)) # ['jason', '123|read'] 从左往右 只切一次
print(info.rsplit("|",maxsplit=1)) # ['jason|123', 'read'] 从右往左 只切一次
7.字符串大小写相关 str.lower() str.upper() str.isupper() str.islower()
在生活中填写验证码最常见,输入验证时不需要在意是否是大小写,因为后面会统一转换成大写或小写
eg:
s3 = 'Hello Jessica,最近咋样 555'
print(s3.lower()) # hello jessica,最近咋样 555
print(s3.upper()) # HELLO JESSICA,最近咋样 555
print(s3.islower()) # False
print(s3.isupper()) # False
print("AA".isupper()) # True
print("aa".islower()) # True
code = 'ASdf12'
print(('这是随机验证码:%s' % code))
my_code = input('请输入验证码:>>>').strip()
if code.isupper() ==my_code.isupper():
print("欢迎光临")
else:
print("验证码错误")
8.字符串的格式化输出(4种方式) str.formate()
方式1:等价于%s占位 没有什么优势
res1 = 'my name is {} my age is {}'
print(res1.format('nana',18))
方式2:支持索引取值 并且支持重复使用
res2 = 'my name is {0} my age is {1}{0}{0}{1}{1}'
print(res2.format('nana','18'))
方式3;支持关键字取值(按k取值)并且支持重复使用
res3 = 'my name is {name} ,my age is {age}'
print(res3.format(name='nana',age =18))
方式4:推荐使用
name = 'nana'
age = 18
print(f'my name is {name} ,my age is {age}')
9.统计字符串中指定字符出现的次数 str.count()
eg:
res = 'asddfffffffffdfdfdff'
print(res.count('f')) # 13
print(res.count('df')) #4
10.判断字符串的开头或结尾 str.endswith() str.startwith()
eg:
res = "ojbk haha name age"
print(res.startswith('o'))
print(res.endswith('e'))
print(res.startswith('oj'))
print(res.endswith('ge'))
11.字符串的替换 str.replace() 从左往右替换
eg:
res = "nana gets 100$ 100$ 100$"
print(res.replace('nana','lisa'))
print(res.replace('100$',"100000$",1))
12.字符串的拼接 ''.join()
eg:
res1 = 'hello'
res2 = 'world'
print(res1+res2)
print(res1*2+res2*2) # 字符串支持加号、乘号的拼接
print(''.join(res1,res2)) # join括号里面只有一个参数 报错
print(''.join([res1,res2]))
print('@'.join(['nana','xiaoxiao']))
print('@'.join(['nana','xiaoxiao',33])) # 列表中的数据都必须是字符串类型 报错
13.判断字符串中是否是纯数字 str.isdigit()
eg:
print('123'.isdigit()) # True
print('123a'.isdigit()) # False
print(''.isdigit()) # False
14.查找某个字符对应的索引值 str.index() str.find()
index查找索引 如果没有则报错
find查找索引 如果没有这返回-1
eg:
res ='haha nihao '
print(res.find('a')) # 1 从左到右开始找
print(res.index('a')) # 1
print(res.index('g')) # 报错
print(res.find('g')) # -1
print(res.find('n',0,5)) # -1 在索引位置0-4中查找‘n'
print(res.index('n',0,5)) # 报错
15.正文相关操作 str.title() str.capitalize()
eg:
res = 'love in life'
print(res.title()) # Love In Life 每个单词首字母大写
print(res.capitalize()) # ove in life 只有第一个单词首字母大写
列表(list)的相关方法
1.关键字:list
2.类型转换:能够被for循环的数据类型都可以转换成列表(字符串、集合、字典、元组)
eg:
print(list(11)) # 报错
print(list(11.1)) # 报错
print(list(False)) # 报错
print(type(list('123')),list('123'))
print(type(list((1,2,3))),list((1,2,3)))
print(type(list('123243jasdsad')), list('123243jasdsad'))
print(type(list({'name':'nana','age':18})),list({'name':'nana','age':18})) # <class 'list'> ['name', 'age']
3.需要掌握的方法
l1 = ['jason', 'kevin', 'oscar', 'tony']
1.索引取值
print(l1[0]) # jason
print(l1[-1]) # tony
2.切片操作
print(l1[0:3]) # ['jason', 'kevin', 'oscar']
print(l1[:]) # ['jason', 'kevin', 'oscar', 'tony']
print(l1[-4:-1]) # ['jason', 'kevin', 'oscar']
3.间隔/方向
print(l1[::2]) # ['jason', 'oscar']
4.统计列表中数据的个数 len()
print(len(l1)) # 4
作业
1.基于字符串充当数据库完成用户登录(基础练习)
data_source = 'jason|123' # 一个用户数据
获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
解题步骤: 1.先拆分数据 得到用户数据的用户名和密码
2.登录功能实现 先获取用户输入的密码和用户名 再进行if判断
data_source = 'jason|123'
name,pwd = data_source.split('|')
user_name = input("请输入你的用户名:>>>").strip()
user_pwd = input("请输入你的密码:>>>").strip()
if name == user_name and pwd == user_pwd:
print("登录成功")
else:
print("用户名或密码错误")
2.基于列表充当数据库完成用户登录(拔高练习) # 多个用户数据
data_source = ['jason|123', 'kevin|321','oscar|222']
解题步骤: 1.分别取出各个用户的用户名和密码 可用列表索引或for循环取出
2.解压赋值
3. 判断比较
方案一:
data_source = ['jason|123', 'kevin|321','oscar|222']
name1,pwd1 = data_source[0].split("|")
name2,pwd2= data_source[1].split("|")
name3,pwd3= data_source[2].split("|")
user_name = input("请输入你的用户名:>>>").strip()
user_pwd = input("请输入你的密码:>>>").strip()
if name1 == user_name and pwd1 == user_pwd:
print("登录成功")
elif name2 == user_name and pwd2 == user_pwd:
print("登录成功")
elif name3 == user_name and pwd3 == user_pwd:
print("登录成功")
else:
print("用户名或密码错误")
方案二:
data_source = ['jason|123', 'kevin|321','oscar|222']
while True:
user_name = input("请输入你的用户名:>>>").strip()
user_pwd = input("请输入你的密码:>>>").strip()
for i in data_source:
name,pwd= i.split('|')
# print(name,pwd)
if name == user_name and pwd == user_pwd:
print("登录成功")
break
else:
continue
标签:内置,name,res,eg,浮点,str,type,print,方法 来源: https://www.cnblogs.com/luonacx/p/16410494.html