#!/usr/bin/python
#Python3 字符串
#可以截取字符串的一部分并与其他字段拼接
var1 = 'Hello World!'
print ("已更新字符串 : ", var1[:6] + 'Runoob!')
'''
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。
'''
#如果a,b均不填写,默认取全部字符。即,下面这两个打印结果是一样的
var1 = "hello world"
print(var1[: ]) # hello world
print(var1) # hello world
#如果a为负数,默认从尾部某一位置,开始向后截取
print(var1[-2: ]) # ld
#如果a>=b, 默认输出为空。
print(var1[3: 3])
#python字符串格式化符号 %f 可指定小数点后的精度。
num=18.7254
print("the price is %.2f" %num)
'''
%g 是自动选择输出格式的,在六位数的情况下就会以科学计数法方式输出,文章中说 %g 是 %f 和 %e 的简写
python 中应该如同 C 语言一样,%g 用于打印数据时,会去掉多余的零,至多保留六位有效数字。
'''
a=100000.1
print("%g" % (a))
a = 10
print("%#x" % a)
print("%#o" % a)
print(bin(a))
'''
字符串截取字符继续补充:
[::2] 表示的是从头到尾,步长为2。第一个冒号两侧的数字是指截取字符串的范围,第二个冒号后面是指截取的步长。
'''
L="abcdefg" #或者['a','b','c','d','e','f','g']
print(L[0:4:2])
#可以使用负数从字符串右边末尾向左边反向索引,最右侧索引值是 -1:
print(L[-1])
'''
字符串的分割还有partition()这种方式partition(sep) --> (head,sep,tail)
从左向右遇到分隔符把字符串分割成两部分,返回头、分割符、尾三部分的三元组。
如果没有找到分割符,就返回头、尾两个空元素的三元组。
'''
s1 = "I'm a good sutdent."
s2 = s1.partition('goods')
print(s2)
'''
针对 Counter 的升级使用,
必须引用如下库from collections import Counter
'''
from collections import Counter
Var1 = "1116122137143151617181920849510"
Var2 = "1987262819009787718192084951"
print (Counter(Var1))
print (Counter(Var2))
#Python3 数字(Number)
'''
对于 _ 提到,它代表了上一次的输出结果,"用户应该将其视为只读变量",实际情况是你也可以对于_ 赋值,
_=10 是没有毛病的,但这样的结果会导致你在之后调用 _ 的时候全部变成了10,除非你 del _。
'''
a = 10.4
print(a);
#奇进偶弃,因为浮点数的表示在计算机中并不准确
print(round(a));
#python 不支持复数转换为整数或浮点数
'''
random.randint(x,y) #随机生一个整数int类型,可以指定这个整数的范围
random.sample(sequence,length) 可以从指定的序列中,随机的截取指定长度的片断,不修改原序列。
'''
print("\o12\'\t\other")
stra = "ab"
print(stra * 2)
if "a" in stra:
print("true")
else:
print("false")