其他分享
首页 > 其他分享> > 整型相关方法、浮点型相关方法、字符串的内置方法、列表的内置方法、练习

整型相关方法、浮点型相关方法、字符串的内置方法、列表的内置方法、练习

作者:互联网

作业讲解

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