day10-字符串和序列总结容器复盘

本文介绍了Python中的字符串和序列操作,包括字符串格式化方法如%s、%d、%f以及f-string的使用。此外,还详细阐述了不同容器数据类型的特点,如列表、元组、集合、字典和字符串,并探讨了拷贝与不拷贝的区别,以及何时需要获取函数或方法的结果。最后,通过示例展示了如何在实际编程中应用这些概念。
摘要由CSDN通过智能技术生成

字符串和序列总结

str1 = 'has\nskl'

name = input('姓名:')
age = int(input('年龄:'))

# xxx今年xx岁
message = name + '今年' + str(age) + '岁'
print(message)

# xxx今年xx岁,性别:x,月薪是:xxx元
gender = '男'
money = ''
message = name + '今年' + str(age) + '岁,性别:' + gender + ',月新是:' + str(money) + '元'
print(message)

字符串格式占位符

"""
语法:
包含格式占位符的字符串 % (数据1,数据2,数据3,...)
注意:数据和格式占位一一对应

格式占位符
%s   - 字符串占位符;可以给任何类型的数据占位
%d   - 整数占位符;只能给数字占位,如果是浮点数拼接的时候小数位会被去掉
%f   - 浮点数占位符;只能给数字占位,默认保留6位小数
%.Nf - 浮点数占位符;只能给数字占位,保留N位小数
"""
message = '%s今年%s岁, 性别: %s,月薪是: %s元' % (name, age, gender, money)
print(message)

"""
2.f-string
在字符串的最外面加f, 里面就可以通过{表达式}来为字符串指定的位置赋值

1)基本用法:[提供数据的表达式]
2)加参数:{提供数据的表达式:参数}
:,  -  数字数据在显示的时候以银行显示金额的方式来显示(从后往前每3位用一个逗号隔开),例如:1,000,000
:%   -   数据数据以百分比的方式显示,百分数默认保留6位小数,:.N% - N控制小数位数,0.123 -> 12.3%
:.Nf  - 控制数据显示的时候保留N位小数 
:x>Nd - 相当于rjust,x表示填充字符,不给是空格,N是填充后的长度
:x<Nd - 相当于ljust,x表示填充字符,不给是空格,N是填充后的长度
:x^Nd - 相当于center,x表示填充字符,不给是空格,N是填充后的长度
"""
money = 90000000000
message = f'{name}年龄{age}岁, 性别:{gender}, 月薪是:{money}元, 增长率:{0.24542421:.2%}'
print(message)

a = 100
list1 = [10, 20, 30]
message = f'a:{a}, ax10:{a * 10}, b:{12.344}, c:{"abc"}, d:{list1[-1]}'
print(message)


num = 198200
address = '四川省成都市武侯区肖家河大厦'
print(f'年薪: {num * 12:,}, 地址:{address}, 占比:{0.123:.1%}, 月薪:{num:.2f}')
print(f'数字:{"abc":0^5}')

容器型数据类型复盘

列表、元组、集合、字典、字符串、range

1.区分不同容器的应用场景

# 1)容器的本质:能够同时保存多个数据
"""
a.字符串和range - 不适合作为容器来保存多个别的数据
字符串 - 只能以字符为单位保存多个文字符号
range - 只能存储等差数列的数据(程序只能控制范围和差)

b.列表、元组、集合、字典 - 都可以存储通过别的方式提供的多个数据
列表、字典  -  要同时保存多个数据的最好选择(意义相同的多个数据用列表;意义不同的多个数据用字典)
元组 - 特点:不可变!如果要求多个数据存储到容器中以后不能被修改
集合 - 去重;数学集合运算
"""

# 2.拷贝和不拷贝的问题
# 1) 为什么元组没有copy方法
"""
python存储数据的底层逻辑:
a.数据保存在堆里面,变量在栈中,变量中保存的是数据在堆中的地址。
b.多个相同的不可变数据在内存中只保留一个,多个相同的可变数据在内存中保留多个(每次都不一样)
id函数:id(数据) - 获取数据在内容中的地址
id(变量) - 获取变量直接存储的那个地址
"""
num = 100
age = 100
print(id(num), id(age))  # 140731042566928 140731042566928

list1 = [10, 20]
list2 = [10, 30]
print(id(list1), id(list2))  # 1959428087488 1959428094720

# 2)可变数据类型的变量直接赋值和拷贝的区别
# 直接用一个变量给另外一个变量赋值,赋的是地址(其实是将第一个变量中保存的数据的地址给另外一个变量)
list1 = [10, 20]
list2 = list1
print(id(list1), id(list2))  # 2177050168064 2177050168064

list3 = list1.copy()
print(id(list3))          # 2876254735040

# 3.怎么判断是否需要获取函数或者方法的结果
# 先看方法或者函数的功能有没有体现在对原数据的修改上,如果没有,那么这个方法或者函数就会有一个有效的结果来反馈函数的功能 = [29, 89, 89, 20, 90]

# 获取、使用结果
result = list1.count(20)
print(result)     # 1
print(list1.count(20))  # 1

# 不获取、不使用方法的结果
list1.append(100)
print(list1)    # [29, 89, 89, 20, 90, 100]
result = list1.append(100)
print(result)   # None


str1 = 'jsks23可视对讲'
result = str1.upper()
print(str1)    # jsks23 可视对讲
print(result)  # JSKS23 可视对讲

nums = [1, 2, 3]
print(nums.append(100))  # None
print(nums)  # [1, 2, 3, 100]

nums = [12, 34, 67,  8, 90, 2]
result = sorted(nums)
print(nums)    # [12, 34, 67, 8, 90, 2]
print(result)  # [2, 8, 12, 34, 67, 90]

result = nums.sort()
print(result)   # None

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值