# 1.Python转义字符


a = "sqwerdf"
# 2.Python字符串运算符
'''
    +    字符串连接    a + b 输出结果: HelloPython
    *    重复输出字符串    a*2 输出结果:HelloHello
    []    通过索引获取字符串中字符    a[1] 输出结果 e
    [ : ]    截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。    a[1:4] 输出结果 ell
    in    成员运算符 - 如果字符串中包含给定的字符返回 True    'H' in a 输出结果 True
    not in    成员运算符 - 如果字符串中不包含给定的字符返回 True    'M' not in a 输出结果 True
    r/R    原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 
                    原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
'''
print("下面是字符串运算符------")
print(r'\n')
print(R'\n')
'''
+    字符串连接    a + b 输出结果: HelloPython
*    重复输出字符串    a*2 输出结果:HelloHello
[]    通过索引获取字符串中字符    a[1] 输出结果 e
[ : ]    截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。    a[1:4] 输出结果 ell
in    成员运算符 - 如果字符串中包含给定的字符返回 True    'H' in a 输出结果 True
not in    成员运算符 - 如果字符串中不包含给定的字符返回 True    'M' not in a 输出结果 True
r/R    原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。    

'''
# 3.Python字符串格式化
print("我叫 %s 今年 %d 岁!" % ('小明', 10))  # %s     格式化字符串,%d     格式化整数
'''
python字符串格式化符号:
    符   号    描述
      %c     格式化字符及其ASCII码
      %s     格式化字符串
      %d     格式化整数
      %u     格式化无符号整型
      %o     格式化无符号八进制数
      %x     格式化无符号十六进制数
      %X     格式化无符号十六进制数(大写)
      %f     格式化浮点数字,可指定小数点后的精度
      %e     用科学计数法格式化浮点数
      %E     作用同%e,用科学计数法格式化浮点数
      %g     %f和%e的简写
      %G     %f 和 %E 的简写
      %p     用十六进制数格式化变量的地址
'''
# 4.Python format 格式化函数
'''
基本语法是通过 {} 和 : 来代替以前的 % 
'''
"{} {}".format("hello", "world")  # 不设置指定位置,按默认顺序   结果-->'hello world'
"{1} {0} {1}".format("hello", "world")  # 设置指定位置  -->'world hello world'
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的


# 可以向 str.format() 传入对象:
class AssignValue(object):
    def __init__(self, value):
        self.value = value


my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的

# 5. 数字格式化
# str.format() 格式化数字的多种方法:
'''

数字        格式    输出        描述
3.1415926    {:.2f}    3.14        保留小数点后两位
3.1415926    {:+.2f}    +3.14        带符号保留小数点后两位
-1            {:+.2f}    -1.00        带符号保留小数点后两位
2.71828        {:.0f}    3            不带小数
5            {:0>2d}    05            数字补零 (填充左边, 宽度为2)
5            {:x<4d}    5xxx        数字补x (填充右边, 宽度为4)
10            {:x<4d}    10xx        数字补x (填充右边, 宽度为4)
1000000        {:,}    1,000,000    以逗号分隔的数字格式
0.25        {:.2%}    25.00%        百分比格式
1000000000    {:.2e}    1.00e+09    指数记法
13            {:10d}    13            右对齐 (默认, 宽度为10)
13            {:<10d}    13            左对齐 (宽度为10)
13            {:^10d}    13            中间对齐 (宽度为10)

'''
print("{:.2f}".format(3.1415926));  # 保留小数点后两位 , 结果: 3.14

# 进制 b、d、o、x 分别是二进制、十进制、八进制、十六进制。
'{:b}'.format(11)  # 二进制    1011
'{:d}'.format(11)  # 十进制    11
'{:o}'.format(11)  # 八进制    13
'{:x}'.format(11)  # 十六进制   b
'{:#x}'.format(11)  # 0xb
'{:#X}'.format(11)  # 0XB

# 此外我们可以使用大括号 {} 来转义大括号,如下实例:
print("{} 对应的位置是 {{0}}".format("runoob"))  # -> runoob 对应的位置是 {0}



 

# 1.Python转义字符


a = "sqwerdf"
# 2.Python字符串运算符
'''
    +  字符串连接  a + b 输出结果: HelloPython
    *  重复输出字符串    a*2 输出结果:HelloHello
    [] 通过索引获取字符串中字符   a[1] 输出结果 e
    [ : ]  截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。 a[1:4] 输出结果 ell
    in 成员运算符 - 如果字符串中包含给定的字符返回 True   'H' in a 输出结果 True
    not in 成员运算符 - 如果字符串中不包含给定的字符返回 True  'M' not in a 输出结果 True
    r/R    原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 
                    原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
'''
print("下面是字符串运算符------")
print(r'\n')
print(R'\n')
'''
+  字符串连接  a + b 输出结果: HelloPython
*  重复输出字符串    a*2 输出结果:HelloHello
[] 通过索引获取字符串中字符   a[1] 输出结果 e
[ : ]  截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。 a[1:4] 输出结果 ell
in 成员运算符 - 如果字符串中包含给定的字符返回 True   'H' in a 输出结果 True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True  'M' not in a 输出结果 True
r/R    原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 

'''
# 3.Python字符串格式化
print("我叫 %s 今年 %d 岁!" % ('小明', 10))  # %s  格式化字符串,%d  格式化整数
'''
python字符串格式化符号:
符   号  描述
      %c    格式化字符及其ASCII码
      %s    格式化字符串
      %d    格式化整数
      %u    格式化无符号整型
      %o    格式化无符号八进制数
      %x    格式化无符号十六进制数
      %X    格式化无符号十六进制数(大写)
      %f    格式化浮点数字,可指定小数点后的精度
      %e    用科学计数法格式化浮点数
      %E    作用同%e,用科学计数法格式化浮点数
      %g    %f和%e的简写
      %G    %f 和 %E 的简写
      %p    用十六进制数格式化变量的地址
'''
# 4.Python format 格式化函数
'''
基本语法是通过 {} 和 : 来代替以前的 % 
'''
"{} {}".format("hello", "world")  # 不设置指定位置,按默认顺序   结果-->'hello world'
"{1} {0} {1}".format("hello", "world")  # 设置指定位置  -->'world hello world'
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的


# 可以向 str.format() 传入对象:
class AssignValue(object):
def __init__(self, value):
self.value = value


my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的

# 5. 数字格式化
# str.format() 格式化数字的多种方法:
'''

数字     格式 输出     描述
3.1415926  {:.2f} 3.14       保留小数点后两位
3.1415926  {:+.2f}    +3.14      带符号保留小数点后两位
-1         {:+.2f}    -1.00      带符号保留小数点后两位
2.71828        {:.0f} 3          不带小数
5          {:0>2d}    05         数字补零 (填充左边, 宽度为2)
5          {:x<4d}    5xxx       数字补x (填充右边, 宽度为4)
10         {:x<4d}    10xx       数字补x (填充右边, 宽度为4)
1000000        {:,}   1,000,000  以逗号分隔的数字格式
0.25       {:.2%} 25.00%     百分比格式
1000000000 {:.2e} 1.00e+09   指数记法
13         {:10d} 13         右对齐 (默认, 宽度为10)
13         {:<10d}    13         左对齐 (宽度为10)
13         {:^10d}    13         中间对齐 (宽度为10)

'''
print("{:.2f}".format(3.1415926));  # 保留小数点后两位 , 结果: 3.14

# 进制 b、d、o、x 分别是二进制、十进制、八进制、十六进制。
'{:b}'.format(11)  # 二进制    1011
'{:d}'.format(11)  # 十进制    11
'{:o}'.format(11)  # 八进制    13
'{:x}'.format(11)  # 十六进制   b
'{:#x}'.format(11)  # 0xb
'{:#X}'.format(11)  # 0XB

# 此外我们可以使用大括号 {} 来转义大括号,如下实例:
print("{} 对应的位置是 {{0}}".format("runoob"))  # -> runoob 对应的位置是 {0}