轩小陌的Python笔记-day05 数据类型

day05 数据类型(上)

接下来的3篇的内容都是讲解数据类型的知识点,常见的数据类型:

  • int,整数类型(整型)
  • bool,布尔类型
  • str,字符串类型
  • list,列表类型
  • tuple,元组类型
  • dict,字典类型
  • set,集合类型
  • float,浮点类型(浮点型)

每种数据类型都有自己的特点及应用场景,以后的开发过程中需要根据实际的开发情况选择合适的数据类型。
在这里插入图片描述
对每种数据类型的讲解,会按照以下5个维度来进行:

  1. 定义
  2. 独有功能
  3. 公共功能
  4. 类型转换
  5. 其他

本篇课程目标:掌握整形、布尔类型、字符串的必备知识。

本篇课程概要:

  • 整型
  • 布尔类型
  • 字符串类型

1.整型

整型其实就是十进制整数的统称,比如:1、68、999都属于整型。他一般用于表示 年龄、序号等。

1.1 定义

number = 10
age = 99

1.2 独有功能

对于整型,没有常用的独有功能,以下举例一个不常用的:

v1 = 5
print(bin(v1))  # 0b101
result1 = v1.bit_length()	
print(result1)  # 3

v2 = 10
print(bin(10))  # 0b1010
result2 = v2.bit_length()
print(result2)  # 4

# 调用整型的bit_length()函数,可以获取整型的二进制位数。

1.3 公共功能

加减乘除

v1 = 4
v2 = 8
v3 = v1 + v2

1.4 转换

在项目开发中经常会出现一些 “字符串” 、布尔值或浮点型转换为整型的情况:

# 布尔值转整型
n1 = int(True)  	# True转换为整数 1
n2 = int(False) 	# False转换为整数 0

# 字符串转整型
v1 = int("186",base=10) 
# 把字符串看成十进制的值,然后再转换为十进制整数,结果:v1 = 186
v2 = int("0b1001",base=2) 
# 把字符串看成二进制的值,然后再转换为十进制整数,结果:v1 = 9 (0b表示二进制)
v3 = int("0o144",base=8)  
# 把字符串看成八进制的值,然后转换为十进制整数,结果:v1 = 100 (0o表示八进制)
v4 = int("0x59",base=16)  
# 把字符串看成十六进制的值,然后转换为十进制整数,结果:v1 = 89 (0x表示十六进制)

# 浮点型(小数)转整型
v1 = int(8.7) 		# 8

所以,如果以后遇到一个按二进制、八进制、十进制、十六进制规则存储的字符串时,可以轻松的通过int转换为十进制的整数。

1.5 其他

1.5.1 长整型
  • Python3:整型(无限制)
  • Python2:整型、长整型

在python2中跟整数相关的数据类型有两种:int(整型)、long(长整型),他们都是整数只不过表示的值范围不同。
在这里插入图片描述

  • int,可表示的范围:-9223372036854775808~9223372036854775807
  • long,整数值超出int范围之后自动会转换为long类型(无限制)。

在python3中去除了long只剩下:int(整型),并且 int 长度不做限制。

1.5.2 地板除(Python 3与Python 2的区别)
  • Python 3:

    v1 = 9/2 
    print(v1) 	# 4.5
    
  • Python 2:

    v1 = 9/2 
    print(v1) 	# 4
    # 在Python2中整型除法默认只保留整数部分
    
    from __future__ import division 
    
    v1 = 9/2 
    print(v1) 	# 4.5
    # 要想在Python2中实现正常除法,需要在引入division模块
    

2. 布尔类型

布尔值,其实就是 “真”、“假” 。

2.1 定义

data = False
alex_is_sb = True

2.2 独有功能

2.3 公共功能

布尔类型中其实没有常用的公共功能,严格说来它有加的功能:

v1 = True + True
print(v1) # 2

2.4 转换

在以后的项目开发过程中,会经常使用其他类型转换为布尔值的情景,记住一个规律即可:

整数0、空字符串、空列表、空元组、空字典、空集合等转换为布尔值时均为False
其他均为True

练习题:

以下变量为True还是False?

v1 = bool(0)			# False
v2 = bool(-10)			# True
v3 = bool(10)			# True
v4 = bool("轩小陌")	  # True
v5 = bool("")			# False
v6 = bool(" ")			# True
v7 = bool([]) 			# False
v8 = bool([112233])  # True
v9 = bool({}) 			# False
v10 = bool({"name":"轩小陌","age":18}) 	# True

2.5 其他

如果在 ifwhile 条件后面写一个值当作条件时,他会默认转换为布尔类型,然后再做条件判断:

if 0:
	print("太六了")
else:
    print(999)
# 输出结果:999

if "轩小陌":
	print("你好")
# 输出结果:你好

while "hjj":
	print("你是傻逼?")
else:
	print("你是逗比?")
# 输出结果:你是傻逼?

3.字符串类型

字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。

3.1 定义

v1 = "包治百病"
v2 = '包治百病'
v3 = "'包'治百病"
v4 = '"包"治百病'
v5 = """
吵架都是我的错,
因为打架打不过。
"""
# 三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串。

3.2 独有功能

字符串的独有功能很多,本篇只讲其中常用的十几种。

# 基本格式:
"xxxxx".功能(...)

v1 = "xxxxx"
v1.功能(...)
  1. 判断字符串是否以 XX 开头?得到一个布尔值

    v1 = "叨逼叨的一天,烦死了"
    result = v1.startswith("叨逼叨的一天")
    print(result) 
    
    # startswith()用于判断字符串开头内容,输出结果为True
    
    # 示例:
    v1 = input("请输入住址:")
    if v1.startswith("北京市"):
    	print("北京人口")
    else:
    	print("非北京人口")
    
  2. 判断字符串是否以 XX 结尾?得到一个布尔值

    v1 = "叨逼叨的一天,烦死了"
    result = v1.endswith("烦死了")
    print(result) 
    
    # endswith()用于判断字符串结尾内容,输出结果为True
    
    # 示例:
    address = input("请输入地址:")
    if address.endswith('村'):
    	print("农业户口")
    else:
    	print("非农户口")
    
  3. 判断字符串是否为十进制数?得到一个布尔值

    v1 = "1238871"
    result = v1.isdecimal()
    print(result) 
    # isdecimal()用于判断字符串是否为十进制数,输出结果为True
    
    # 示例:
    v1 = input("请输入值:") 
    v2 = input("请输入值:") 
    if v1.isdecimal() and v2.isdecimal():
    	data = int(v1) + int(v2)
    	print(data)
    else:
    	print("请正确输入数字")
    
    v1 = "123"
    print(v1.isdecimal()) 	# True
    v2 = "①"
    print(v2.isdecimal()) 	# False
    
    v3 = "123"
    print(v3.isdigit()) 	# True
    v4 = "①"
    print(v4.isdigit()) 	# True
    
    # 注意:不要用isdigit()来判断,不严谨,容易出错。
    
  4. 去除字符串两边的 空格、换行符( \n )、制表符( \t ),得到一个新字符串

    data = "  轩小陌    "   
    print(data)
    
    # 输出结果:"  轩小陌    "
    
    msg = "  H e ll o啊,树哥   "
    data = msg.strip()
    print(data) 
    
    # strip()可以将字符串两边的空白去掉,输出结果:"H e ll o啊,树哥"
    
    msg = "  H e ll o啊,树哥   "
    data = msg.lstrip()
    print(data) 
    
    # lstrip()可以将字符串坐边的空白去掉,输出结果:"H e ll o啊,树哥   "
    
    msg = "  H e ll o啊,树哥   "
    data = msg.rstrip()
    print(data) 
    
    # rstrip()可以将字符串坐边的空白去掉,输出结果:"  H e ll o啊,树哥"
    
    code = input("请输入4位验证码:") 	# "  FB87 "
    data = code.strip()
    if data == "FB87":
    	print('验证码正确')
    else:
    	print("验证码错误")
    

    补充:去除字符串两边指定的内容

    msg = "哥H e ll o啊,树哥"
    data = msg.strip("哥")
    print(data) 
    
    # 将msg两边的"哥"去掉,得到"H e ll o啊,树"
    
    msg = "哥H e ll o啊,树哥"
    data = msg.lstrip("哥")
    print(data) 
    
    # 将msg左边的"哥"去掉,得到"H e ll o啊,树哥"
    
    msg = "哥H e ll o啊,树哥"
    data = msg.rstrip("哥")
    print(data) 
    
    # 将msg右边的"哥"去掉,得到"哥H e ll o啊,树"
    
  5. 字符串变大写,得到一个新字符串

    msg = "my name is oliver queen"
    data = msg.upper()
    print(data) 
    
    # upper()可以将字符串中内容变成大写,生成一个新字符串。
    # 输出结果为:MY NAME IS OLIVER QUEEN
    
    code = input("请输入4位验证码:") 	#  FB88   fb88 
    value = code.upper() 	#  FB88  
    data = value.strip() 	# FB88
    if data == "FB87":
    	print('验证码正确')
    else:
    	print("验证码错误")
    
  6. 字符串变小写,得到一个新字符串

    msg = "My Name Is Oliver Queen"
    data = msg.lower()
    print(data) 
    
    # lower()可以将字符串中内容变成小写,生成一个新字符串。
    # 输出结果为:my name is oliver queen
    
    code = input("请输入4位验证码:")
    value = code.strip().lower()
    if value == "fb87":
    	print('验证码正确')
    else:
    	print("验证码错误")
    
  7. 字符串内容替换,得到一个新的字符串

    data = "你是个好人,但是好人不合适我"
    value = data.replace("好人","贱人")
    print(value) 
    
    # replace()可以将字符串指定内容替换,生成一个新字符串
    # 输出结果:"你是个贱人,但是贱人不合适我"
    
    video_file_name = "高清无码爱情动作片.mp4"
    new_file_name = video_file_name.replace("mp4","avi") 
    final_file_name = new_file_name.replace("无码","步兵") 
    print(final_file_name)
    
    # 输出结果:"高清步兵爱情动作片.avi"
    
    content = input("请输入评论信息") 			# alex是一个草包
    content = content.replace("草","**") 	  
    content = content.replace("泥马","***") 	 
    print(content) 
    
    # 输出结果:"alex是一个**包"
    
    # 当需要批量替换多个内容时,可用列表储存需替换内容,通过for循环进行替换
    char_list = ["草拟吗","逗比","二蛋","钢球"]
    content = input("请输入评论信息")
    for item in char_list:
      content = content.repalce(item,"**")
    print(content)
    
  8. 字符串切割,得到一个新的字符串

    data = "轩小陌|root|919233068@qq.com"
    result = data.split('|') 
    print(result) 
    
    # split()可以根据特定字符进行切割之后储存在一个列表中
    # 输出结果:
    ["轩小陌","root","919233068@qq.com"] 
    
    # 案例:判断用户名密码是否正确
    info = "轩小陌,root"   # 备注:字符串中存储了用户名和密码
    user_list = info.split(',')    
    # 通过split()得到一个包含了2个元素的列表 [ "轩小陌" , "root" ]
    user = input("请输入用户名:")
    pwd = input("请输入密码:")
    if user == user_list[0] and pwd == user_list[1]:
    # 通过使用列表的索引功能得到用户名和密码,并进行判断
    	print("登录成功")
    else:
    	print("用户名或密码错误")
    

    补充1:

    data = "轩小陌|root|919233068@qq.com"
    v1 = data.split("|", 1) # ['轩小陌', 'root|wupeiqi@qq.com']
    print(v1)
    
    # split()中可通过传入参数来实现切割的次数
    # 输出结果:
    ['轩小陌', 'root|919233068@qq.com']
    

    补充2:

    data = "轩小陌|root|919233068@qq.com"
    v1 = data.rsplit(',',1)
    print(v1) 
    
    # rsplit()是从右往左切割,同样可通过传入参数来实现切割的次数。rsplit一般用于获取文件的扩展名。
    # 输出结果:
    ['轩小陌|root', '919233068@qq.com']
    
  9. 字符串拼接,得到一个新的字符串

    data_list = ["alex","是","大烧饼"]
    v1 = "_".join(data_list) # alex_是_大烧饼
    print(v1)
    
    # join()可以将字符串通过指定字符进行拼接,生成一个新字符串。
    # 输出结果:alex_是_大烧饼
    
  10. 格式化字符串,得到新的字符串(前面内容有讲过)

    name = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
    data = name.format("老王","护士","嫩模")
    print(data) 
    
    name = "{}的喜欢干很多行业,例如有:{}、{} 等"
    data = name.format("老王","护士","嫩模")
    print(data) 
    
    name = "{name}的喜欢干很多行业,例如有:{h1}、{h2} 等"
    data = name.format(name="老王",h1="护士",h2="嫩模")
    print(data) 
    
    # 输出结果:
    老王的喜欢干很多行业,例如有:护士、嫩模等
    
  11. 字符串转换为字节类型(前面内容有讲过)

    data = "嫂子"  					# unicode,字符串类型
    v1 = data.encode("utf-8")  		   # utf-8,字节类型
    v2 = data.encode("gbk")  		   # gbk,字节类型
    print(v1)  						  # b'\xe5\xab\x82 \xe5\xad\x90'
    print(v2)  						  # b'\xc9\xa9 \xd7\xd3'
    
    s1 = v1.decode("utf-8") 		   
    s2 = v2.decode("gbk") 			   
    print(s1)						  # 嫂子
    print(s2)						  # 嫂子
    
  12. 将字符串内容进行居中、居左、居右展示

    v1 = "王老汉"
    data = v1.center(21, "-")
    print(data) 
    # 输出结果:---------王老汉---------
    
    data = v1.ljust(21, "-")
    print(data) 
    # 输出结果:王老汉------------------
    
    data = v1.rjust(21, "-")
    print(data) 
    # 输出结果:------------------王老汉
    
  13. 给字符串填充 0 (可用于处理二进制数据)

    data = "alex"
    v1 = data.zfill(10)
    print(v1) 
    
    # 输出结果:000000alex
    
    data = "101" 
    v1 = data.zfill(8)
    print(v1) 
    
    # 输出结果:"00000101"
    

练习题

  1. 写代码实现判断用户输入的值否以 "al"开头,如果是则输出 “是的” 否则 输出 “不是的”。

    text = input('请输入值:')
    if text.startswith('al') :
        print('是的')
    else:
        print('不是的')
    
  2. 写代码实现判断用户输入的值否以"Nb"结尾,如果是则输出 “是的” 否则 输出 “不是的”。

    text = input('请输入值:')
    if text.endswith('Nb'):
        print('是的')
    else:
        print('不是的')
    
  3. 将 name 变量对应的值中的所有的 " l " 替换为 " p " ,并输出结果。

    name = 'ltlbigdiller'
    print(name.replace('l', 'p'))
    
  4. 写代码实现对用户输入的值判断,是否为整数,如果是则转换为整型并输出,否则直接输出"请输入数字"。

    text = input('请输入值:')
    if text.isdecimal():
        print(int(text))
    else:
        print('请输入数字')
    
  5. 对用户输入的数据使用"+"切割,判断输入的值是否都是数字?

    提示:用户输入的格式必须是以下+连接的格式,如 5+9 、alex+999。

    text = input('请输入数据:')
    text_list = text.split('+')
    count = 0
    for item in text_list:
        if item.isdecimal():
            count += 1
        else:
            break
    if count == len(text_list):
        print('都是数字')
    else:
        print('不都是数字')
    
  6. 写代码实现一个整数加法计算器(两个数相加)。
    需求:提示用户输入格式为:5+9、15+19、25+19…,计算出两个值的和(提示:先分割再转换为整型,再相加)。

    text = input('请输入格式化为5+9的值:')
    text_list = text.split('+')
    sum_text = int(text_list[0]) + int(text_list[1])
    print(sum_text)
    
  7. 写代码实现一个整数加法计算器(两个数相加)。
    需求:提示用户输入格式为:5 +9 或 5+ 9 或 5 + 9,计算出两个值的和(提示:要求先分割、再去除空白、再转换为整型,再相加)。

    text = input('请输入格式化为5 +9或5 + 9或5+ 9的值:')
    text_list = text.split('+')
    for item in text_list:
        item.strip()
    sum_text = int(text_list[0]) + int(text_list[1])
    print(sum_text)
    
  8. 补充代码实现用户认证。
    需求:提示用户输入手机号、验证码,全都验证通过之后才算登录成功(验证码大小写不敏感)。

    code = 'Ae7h'
    tel = "15131266666"
    msg = "欢迎登录PythonAV系统,您的验证码为:{},手机号为:{}".format(code,tel)
    print(msg)
    # 请补充代码
    user_tel = input('请输入手机号:')
    user_code = input('请输入验证码:')
    if user_tel == '15131266666' and user_code.upper == code.upper():
        print('登录成功')
    else:
        print('手机号或验证码错误')
    
  9. 补充代码实现数据拼接

    data_list = []
    while True:
        hobby = input("请输入你的爱好(Q/q退出):")
        if hobby.upper() == 'Q':
            break
        # 把输入的值添加到 data_list 中,如:data_list = ["小姨子","哥们的女朋友"]
        data_list.append(hobby)
        # 将所有的爱好通过符号 "、"拼接起来并输出
    new_data = '、'.join(data_list)
    print(new_data)
    

3.3 公共功能

  1. 相加:字符串 + 字符串

    v1 = "alex" + "大sb"
    print(v1)
    
    # 输出结果:
    alex大sb
    
  2. 相乘:字符串 * 整数

    data = "嫂子" * 3
    print(data) 
    
    # 输出结果:
    嫂子嫂子嫂子
    
  3. 长度

    data = "嫂子满身大汉" 
    print(len(data)) 
    
    # 输出结果:6
    
  4. 获取字符串中的字符,索引

    message = "来做点py交易呀"
    print(message[0]) 				# "来"
    print(message[1]) 				# "做"
    print(message[2]) 				# "点"
    
    print(message[-1]) 				# "呀"
    print(message[-2]) 				# "易"
    print(message[-3]) 				# "交"
    
    # 索引是从0开始计数的,负号代表从最后一个元素开始计数
    

    注意:字符串中是能通过索引取值,无法修改值。字符串在内部存储时不允许对内部元素j进行修改,只能重新创建。

    • 示例:
    message = "来做点py交易呀"
    index = 0
    while index < len(message):
    	value = message[index]
        print(value)
        index += 1
        
    # 通过索引和循环结合,可以实现获取字符串中所有的元素
    
    message = "来做点py交易呀"
    index = len(message) - 1
    while index >=0:
        value = message[index]
        print(value)
        index -= 1
        
    # 通过索引和循环结合,还可以实现倒序获取字符串中所有的元素
    
  5. 获取字符串中的子序列,切片(包头不包尾)

    message = "来做点py交易呀"
    
    print(message[0:2]) 					# "来做"
    print(message[3:7]) 					# "py交易"
    print( message[3:] ) 					# "py交易呀"
    print( message[:5] ) 					# "来做点py"
    
    print(message[4:-1]) 					# "y交易"
    print(message[4:-2]) 					# "y交"
    
    print( message[4:len(message)] ) 		 # "y交易呀"
    
    # 切片操作包头不包尾
    # [3:]表示从字符串的第4个元素开始,取到最后1个元素,生成新字符串
    # [:5]表示从字符串的第1个元素开始,取到第5个元素,生成新字符串
    

    注意:字符串中的切片只能读取数据,无法修改数据。

    message = "来做点py交易呀"
    value = message[:3] + "Python" + message[5:]
    print(value)
    
    # 输出结果:
    来做点Python交易呀
    
  6. 步长,表示切片取值区间

    name = "生活不是电影,生活比电影苦"
    print( name[0:5:2] )   # "生不电" 
    print( name[:8:2] )    # "生不电,"  
    print( name[2::2] )    # "不电,活电苦"
    print( name[2::3] )    # "不影活影"
    print( name[::2] )     # "生不电,活电苦" 
    print( name[8:1:-1] )  # "活生,影电是不" 
    
    # [0:5:2]前两个值表示区间范围,最后一个值表示步长
    # [8:1:-1]前两个值表示区间范围,最后一个值表示步长,步长为-1,表示倒着取元素
    
  7. 循环

    • while循环(前面内容有讲过)

      message = "来做点py交易呀"
      index = 0
      while index < len(message):
      	value = message[index]
          print(value)
          index += 1
      
    • for循环

      message = "来做点py交易呀"
      for char in message:
          print(char)
      
    • range,用来创建一系列的数字

      range(10) 			# [0,1,2,3,4,5,6,7,8,9]
      range(1,10) 		# [1,2,3,4,5,6,7,8,9]
      range(1,10,2) 		# [1,3,5,7,9]
      range(10,1,-1) 		# [10,9,8,7,6,5,4,3,2]
      
    • For + range

      for i in range(10):
          print(i)
      
      message = "来做点py交易呀"
      for i in range(5): 		# [0,1,2,3,4]
          print(message[i])
          
       # 一般常用 for + range 通过循环range生成的数字列表作为字符串的索引值来遍历字符串中的元素
      

    while 和 for 应用场景区别:

    • while,一般在做无限制(未知循环次数)循环时使用。

      while True:
          ...
      
      # 让用户输入一个值,如果不是整数则一直提示输入,直到输入整数才结束
      num = 0
      while True:
          data = input("请输入内容:")
          if data.isdecimal():
              num = int(data)
              break
      	else:
              print("输入错误,请重新输入!")
      
    • for循环,一般应用在已知循环次数的场景。

      message = "来做点py交易呀"
      for char in message:
          print(char)
          
      for i in range(len(message)):
          print(message[i])
      
    • break和continue关键字

      message = "来做点py交易呀"
      for char in message:
          if char == "p":
              continue
          print(char)
      
      # 输出结果:
      来
      做
      点
      y
      交
      易
      呀
      
      message = "来做点py交易呀"
      for char in message:
          if char == "p":
              break
          print(char)
      
      # 输出:
      来
      做
      点
      
      for i in range(5):
          print(i)
          for j in range(3):
              break
              print(j)
      # break只结束当前循环,不影响外部循环的执行
      # 输出结果:
      0
      1
      2
      3
      4
      

3.4 转换

num = 999
data = str(num)
print(data) 

# 输出结果:"999"
data_list = ["alex","eric",999]
data = str(data_list)
print(data) 

# 输出结果:'["alex","eric",999]'

严格意义上,其他类型的数据均可转换成字符串类型,但一般情况下,只有整型转字符串才有意义。

3.5 其他

再次强调:字符串在内部存储时不允许对内部元素j进行修改,只能重新创建。

今日总结

  1. 整型在 Python2 和 Python3 中的区别?

  2. 进制之间的转换。

  3. 其他类型转换为布尔类型时,空和 0 为False,其他均为True。

  4. 条件语句中可自动化转换布尔类型来做判断。

    if "轩小陌":
        print(666)
    else:
        print(999)
    
  5. 字符串中常见的独有功能。

  6. 字符串中常见的公共功能。

  7. 字符串创建之后是不可以被修改的。

今日作业

  1. 请用代码实现如下进制的转换。

    v1 = 675          # 请将v1转换为二进制(字符串类型)
    v1 = bin(v1)
    
    v2 = "0b11000101" # 请将二进制v2转换为十进制(整型)
    v2 = int(v2,base=2)
    
    v3 = "11000101"   # 请将二进制v3转换为十进制(整型)
    v3 = int(v3,base=2)
    
  2. 按要求实现

    现有 v1=123v2=456,请将这两个值转换为二进制,并将其二进制中的前缀 0b 去掉,然后将两个二进制拼接起来,最终再转换为整型(十进制)。

    例如:

    ​ 123 对应二进制为 “0b1111011” ,去除前缀0b之后的二进制为 “1111011”

    ​ 456 对应二进制为 “0b111001000” ,去除前缀0b之后的二进制为 “111001000”

    ​ 将两个二进制拼接起来的值为:“1111011111001000”,再将此值转换为整型为:63432

    v1 = 123
    v2 = 456
    v1 = bin(v1)
    v2 = bin(v2)
    v1 = v1.lstrip('0b')
    v2 = v2.lstrip('0b')
    v3 = v1 + v2
    v3 = int(v3, base=2)
    print(v3)
    
  3. 按要求实现

    现有 v1=123v2=456,请将这两个值转换为二进制,并将其二进制中的前缀 0b 去掉,再补足为2个字节(16位),然后将两个二进制拼接起来,最终再转换为整型(十进制)。

    例如:

    ​ 123 对应二进制为 “0b1111011” ,去除前缀0b之后的二进制为 “1111011” ,补足16位为 “00000000 01111011”

    ​ 456 对应二进制为 “0b111001000” ,去除前缀0b之后的二进制为 “111001000”,,补足16位为 “00000001 11001000”

    ​ 将两个二进制拼接起来的值为:“00000000 01111011 00000001 11001000”,再将此值转换为整型为:8061384

    v1 = 123
    v2 = 456
    v1 = bin(v1)
    v2 = bin(v2)
    v1 = v1.lstrip('0b').zfill(16)
    v2 = v2.lstrip('0b').zfill(16)
    v3 = v1 + v2
    v3 = int(v3, base=2)
    print(v3)
    
  4. 列举你了解的那些数据类型的值转换为布尔值为False。

    # 整型0、空字符串、空列表、空字典、空集合等
    
  5. 看代码写结果:

    if "":
        print(123)
    else:
        print(456)
        
    # 输出结果:
    456
    
    if 0:
        print(999)
    else:
        print(666)
        
    # 输出结果:
    666
    
    if "轩小陌":
        print(345)
    else:
        print(110)
        
    # 输出结果:
    345
    
  6. 让用户输入一段文本,请实现将文本中的敏感词 苍老师波波老师替换为 ***,最后并输入替换后的文本。

    text = input('请输入一段文本:')
    text = text.replace('苍老师','***')
    text = text.replace('波波老师','***')
    print(text)
    
  7. 有变量name = "aleX leNb " 完成如下操作:

    • 移除 name 变量对应的值两边的空格,并输出处理结果

      print(name.strip())
      
    • 判断 name 变量是否以 “al” 开头,并输出结果(用切片 或 startswith实现)

      # 方法一
      print(name[:2] == 'al')
      # 方法二
      print(name.startswith('al'))
      
    • 判断name变量是否以"Nb"结尾,并输出结果(用切片 或 endswith实现)

    方法一

    print(name[-2:] == 'Nb')
    # 方法二
    print(name.endswith('Nb'))
    ```
    
    • 将 name 变量对应的值中的 所有的"l" 替换为 “p”,并输出结果

    print(name.replace(‘l’,‘p’))
    ```

    • 将 name 变量对应的值根据 所有的"l" 分割,并输出结果

    print(name.split(‘l’))
    ```

    • 将name变量对应的值根据第一个"l"分割,并输出结果

    print(name.spilt(‘l’,1))
    ```

    • 将 name 变量对应的值变大写,并输出结果

    print(name.upper())
    ```

    • 将 name 变量对应的值变小写,并输出结果

    print(name.lower())
    ```

  8. 如何实现字符串的翻转?

    # 通过索引可实现字符串的翻转
    data = '我是个帅哥'
    print(data[::-1])
    
  9. 有字符串s = “123a4b5c”

    • 通过对s切片形成新的字符串 “123”

      s = s[:3]
      
    • 通过对s切片形成新的字符串 “a4b”

      s = s[3:6]
      
    • 通过对s切片形成字符串 “c”

      s = s[-1]
      
      
    • 通过对s切片形成字符串 “ba2”

      s = s[-3::-2]
      
  10. 使用while循环实现对字符串 message = “伤情最是晚凉天,憔悴厮人不堪言” 中每个字符进行输出。

    count = 0
    while count < len(message):
        print(message[count])
        count += 1
    
  11. 使用for循环实现对字符串 message = “伤情最是晚凉天,憔悴厮人不堪言” 中每个字符进行输出。

    for item in message:
        print(item)
    
  12. 使用for循环和range实现对字符串 message = “伤情最是晚凉天,憔悴厮人不堪言” 中每个字符进行倒序输出。

    for i in range(len(message)):
        print(message[len(message)-1-i])
    
  13. 使用for循环实现输出倒计时效果,例如:输出内容依次是:“倒计时3秒”,“倒计时2秒”,“倒计时1秒”。

    for i in range(3,0,-1):
        print('倒计时{}秒'.format(i))
    
  14. 让用户输入一段文本,请计算文本中 “浪” 出现的次数,并输入结果。

    message = input('请输入文本:')
    count = 0
    for item in message:
        if item == '浪':
            count += 1
    print(count)
    
  15. 获取用户两次输入的内容,并提取其中的数字,然后实现数字的相加(转换为整型再相加):

    """
    要求:
    	将num1中的的所有数字找到并拼接起来:1232312
    	将num2中的的所有数字找到并拼接起来:1218323
    	然后将两个数字进行相加。
    """
    num1 = input("请输入:") 		# asdfd123sf2312
    num2 = input("请输入:") 		# a12dfd183sf23
    # 请补充代码
    new_num1 = ''
    new_num2 = ''
    for item in num1:
        if item.isdecimal():
            new_num1 += item
    for item in num2:
        if item.isdecimal():
            new_num2 += item
    sum_num = int(new_num1) + int(new_num2)
    print(sum_num)
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值