Python中的字符串对象是不能更改的,也即直接修改字符串中的某一位或几位字符是实现不了的,即python中字符串对象不可更改,但字符串对象的引用可更改,可重新指向新的字符串对象。
+ 直接字符串外+元素
- name = 'zheng'
- print('my name is '+name)
% 直接字符串外%(元素)
一种字符串格式化的语法, 基本用法是将值插入到%s占位符的字符串中。
%s,表示格式化一个对象为字符
- name = 'zhang'
- age = '25'
- print('my name is %s'%(name)+' my age is %d'%(age))
format()函数
在要插入较多的元素时候
- name = input('请输入你的名字:')
- data = input('请输入发送内容:')
- dest_ip = input('请输入ip:')
- dest_port = 2425
- chat_socket.sendto('1:123456:发送者的名称:{my_name}:32:{my_data}'.format(my_name=name,my_data=data).encode('gbk'),(dest_ip,dest_port))
直接format()一下,在后面慢慢给其赋值
扩展知识点:
Python: 字符串中嵌入变量
问题:想创建一个内嵌变量的字符串,变量被它的值替换掉
解决方案:
①Python并没有对在字符串中简单替换变量值提供直接的支持,但是通过字符串的format()方法来解决这个问题
②如果要被替换的变量能在变量域中找到,那么结合使用format_map()和vars()
③vars() 还有一个有意思的特性就是它也适用于对象实例
④format 和format map() 的一个缺陷就是它们并不能很好的处理变量缺失的情况,
解决如下
也有其他的解决办法,比如用模板字符串之类的,然而,format() 和format map() 相比较上面这些方案而已更加先进,因此应该被优先选择。使用format() 方法还有一个好处就是你可以获得对字符串格式化的所有支持(对齐,填充,数字格式化等待),而这些特性是使用像模板字符串之类的方案不可能获得的。