Python学习笔记(五) 字符串和常量及引号的使用,字符串格式化

举报
菜鸟级攻城狮 发表于 2021/05/15 15:55:35 2021/05/15
【摘要】 史上最为详细的python学习笔记

# python定义常量时,命名字母全是大写,即被认为是常量
NAME = "Jack"
print(NAME, '\n')

# 字符串的表示:单引号' ' 双引号" " 三引号""" """
message = "【淘宝】\n您正在使用验证码登录,\n验证码是:890631\n请于3分钟内输入您的验证码,请勿泄露。"
print(message)      # 使用双引号需要加换行符进行换行输出

# 三引号的用法 1 :保持字符串原格式输出
# 邮箱格式输出样例:
email_message = """
【阿里云】
尊敬的用户:
    云盾云安全中心基线检查周报,截止目前您还有3个风险待处理,
请点击:云盾-云安全中心控制台 进行查看、修复验证。

                        from: aliyun.com
                        date: 2020/08/04
"""
print(email_message)

#三引号的用法 2 :作为注释使用
"""
    此处的三引号没有赋值给变量,
    所以此处三引号的作用 多行注释
"""

Python 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

如下实例:

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21) 

以上实例输出结果:

My name is Zara and weight is 21 kg!

python 字符串格式化符号:

    符   号

描述

      %c

 转换成字符(ASCLL码值,或者长度为一的字符串)

      %s

 转换成字符串

      %d / %i

 转成有符号十进制数

      %u

 转换成无符号十进制数

      %o

 转换成无符号八进制数

      %f

 格式化浮点数字,可指定小数点后的精度

      %r

 优先用repr()函数进行字符串转换

      %p

 用十六进制数格式化变量的地址

      %%

 输出%(格式化字符串里面包括白粉宝,那么必须使用%%)

      %g / %G

 %f和%e / %F和%E的简写

      %e / %E

 用科学计数法格式化浮点数,e / E控制输出e / E

      %x / %X

 转换成无符号十六进制数,x / X代表转换后的十六进制字符的大小写

 

Python 字符串前面加u,r,b的含义

1、字符串前加 u

例:u"我是含有中文字符组成的字符串。"

作用:

后面字符串 Unicode 格式 进行编码一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

2、字符串前加 r

例:r"\n\n\n\n”  # 表示一个普通生字符串 \n\n\n\n,而不表示换行了。

作用:

去掉反斜杠的转义机制。

(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的\n”表示换行,”\t”表示Tab等。 )

应用:

常用于正则表达式,对应着re模块。

3、字符串前加 b

: response = b'<h1>Hello World!</h1>'     # b' ' 表示这是一个 bytes 对象

作用:

b" "前缀表示:后面字符串是bytes 类型。

用处:

网络编程中,服务器和浏览器只认bytes 类型数据。

如:send 函数的参数和 recv 函数的返回值都是 bytes 类型

附:

Python3 中,bytes str 的互相转换方式是

str.encode('utf-8')

bytes.decode('utf-8')

 

格式化操作符辅助指令:

符号

功能

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号( + )

<sp>

在正数前面显示空格

#

在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')

0

显示的数字前面填充'0'而不是默认的空格

%

'%%'输出一个单一的'%'

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

 

name = '梦洁'
print('姓名:' + name)

# 格式符%s
age = 22
print('年龄:' + str(age))     # int类型age强转为str类型
print('年龄:%s' % age)        # %s的形式输出年龄,%s即为str的缩写
isMarried = False   # 布尔类型:True    False
print('是否已婚?\t回答:%s' % isMarried)
print('年龄:%d' % age)        # %d的形式输出年龄

# 格式符%d
age = 22.5
print('年龄:%d' % age)    # %d,只取整数部分,舍去小数部分

year = 2019
print('今年是:%d' % year)
print('今年是:%2d' % year)     # %d若限定宽度小于实际宽度,则按实际宽度显示
print('今年是:%6d' % year)     # %d若限定管库大于实际宽度,则补空格

# 格式符%f
price = 89.9254
print('价格:%f' % price)
print('价格:%.2f' % price)    # 保留2为小数,四舍五入

小练习:

# 按特定格式输出如下内容
'''
电视剧名:《xxxx
评分次数:xxx
平均评分:x.x   (保留1为小数)
点赞次数:xx
'''

name = '三十而已'
viewTimes = 3586
scoreTimes = 3208
avgScore = 9.9
like = 3423

# 写法1
overview = '''
剧名:%s
观看次数:%d
评分次数:%d
评分:%.1f
点赞次数:%d
''' % (name, viewTimes, scoreTimes, avgScore, like)
print(overview)

# 写法2
print('剧名:%s' % name)
print('观看次数:%d' % viewTimes)
print('评分次数:%d' % scoreTimes)
print('评分:%.1f' % avgScore)
print('点赞次数:%d' %like)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。