set\map等用法,集合及string字符串学习,陆续学习,给各种大小坑打上标签,防止重复掉坑。
print('----random的用法----')
import random
print(random.random())#任意小数
print(random.random())#任意小数
print(random.randint(1,100))#任意整数
print(random.randint(1,100))#任意整数
random1= random.choices(['life is brian','holy grail','meaning of life'])
print(random1)
# random3=random1
# print(random3.title()) #无法运行
random2='life is brian'
print(random2.title())#title第一字母大写,upper全部大写,lower全部小写仅适用于字符串
print('----小数精确性,Fraction用法----')
from fractions import Fraction
print(Fraction(1,3)) #1/3
print(Fraction(5,6)) #5/6
f=2.5
print(Fraction(*f.as_integer_ratio()))
print((2.5).as_integer_ratio())
print('----集合用法set,集合创建必须用set,拥有去重功能----')
set1=set([1,2,3,4,5])
print(set1)
set2=set(['s','p','a','m'])
print(set2)
set2.add('alot')
print('set2为:',set2)
s1={1,2,3,4,5}
print(s1&{1,3})#交集
print(s1|{1,5,3,6})#并集
print(s1-{1,3,4,6})#s1中没有在1,3,4,6内
print(s1>{1,3})#s1是否有大于1,3的数值
s2= set()
s2.add(1.23)
print('集合s2:',s2)
print({1,2,3}|{3,4})
# print({1,2,3}|[3,4]) #代码错误
# print({1,2,3}.union([3,4])#代码错误
# print({1,2,3}.union({3,4}))#代码错误
# print({1,2,3}.union(set([3,4])))#代码错误
s3={x**2 for x in [1,2,3,4]}#平方打印
print('s3为:',s3)
s4={x for x in 'spam'}
print(s4)
s5={x*5 for x in 'spam'}#多倍打印
print(s5)
s6=s5|{'mmmmm','xxxxx'}#自动去重 合并打印
print(s6)
s7=s5&{'mmmmm','xxxxx'}#交集并打印
print(s7)
print('----集合用法set,拥有去重功能----')
L=[1,2,1,3,2,4,5]
L1=set(L)
print(L1)#打印{}
L2= list((set(L)))
print(L2)#打印列表[],自带去重功能,5² = 5^2一样意思
engineers = {'bob','sue','ann','vic'}
managers = {'tom','sue'}
print('bob' in engineers)
print(engineers & managers)
print(engineers | managers)
print(engineers - managers)
print(engineers > managers)
print("1.",{'bob','sue'}<engineers)
print("2.",(engineers | managers)>engineers)
print("3.^代表在engineers ^ managers任意一个,但不是2个都有:",engineers ^ managers)
print("4.^代表在engineers ^ managers任意一个,但不是2个都有2:",(engineers|managers)-(engineers ^ managers))
print('----变量、对象和引用----')
#变量是一个系统表的元素;对象是分配的一块存储,有足够空间代表的值;引用从变量到对象的指针;类型属于对象
a = 3 #对象垃圾收集,空间被回收
a = 'hello'
a = 'spam'#对象引用值逐个丢弃
print(a)
a = 3
b = a #b不改变a的值,类型
a = 'spam'
print(a,b)
#特别注意,以下内容;与下一段语句比较
L4 = [2,3,4]
L5 = L4 #只是改变某一列元素,共享同时改变
L6 = L4[:] #切割复制原有数值,不改变,copy,从头到尾的分片,[:]起切片固化作用
L4[0]=24 #L4改变会带动L5同步改变
print(L4,L5,L6)#细看L5,L6打印返回值的区别
#特别注意,以下内容
L4 = [2,3,4]
L5 = L4 #只是改变某一列元素,共享同时改变
L6 = L4[:] #切割复制原有数值,不改变,copy,从头到尾的分片,[:]起切片固化作用
L5[0]=24#L5改变会带动L4同步改变
print(L4,L5,L6)#细看L5,L6打印返回值的区别
print('----对象判断,比较判断----')
L4 = [2,3,4]
L4=L5
print(L4==L5,L4 is L5)
L4 = [2,3,4]
L5 = [2,3,4]
print(L4==L5,L4 is L5)
X=42
Y=42
print(X==Y,X is Y)
print('----字符串使用学习----')
S11 = "spam's"
print(S11)
S12 = 's\np\ta\x00m' #转义字符 \n 换行; \t tab ; \r 回车 ; \x 是PEP也就是Python开发团队所采用的Bytecode标识,无实际含义.
print(S12)
# """其他转义字符用法
# 转义字符 描述
# \(在行尾时) 续行符
# \\ 反斜杠符号
# \’ 单引号
# \” 双引号
# \a 响铃
# \b 退格(Backspace)
# \e 转义
# \000 空
# \n 换行
# \v 纵向制表符
# \t 横向制表符
# \r 回车
# \f 换页
# \oyy 八进制数yy代表的字符,例如:\o12代表换行
# \xyy 十进制数yy代表的字符,例如:\x0a代表换行
# \other 其它的字符以普通格式输出
# """
s13 = """...""" #三重引号字符串块
s14 = r'\temp\spam' #Raw字符串
s15 = b'spam' #字节字符串
print(s13,s14,s15)
s16 = 'park prok print,world'
s16.find('pa') #字符串方法调用,搜索
print('s16相关分别为:',s16,s16.find('pa'))
s18 = s16.rstrip() #移除空格
print('s18为:',s18)
s19 = s16.replace('ok','python')#字符ok 替换成python
print('s19为:',s19)
s20= s16.split(',') #用展位符分割
s21= s16.split(',')[0] #用展位符分割,取分割第一部分,爬虫截取网址经常用到
s22= s16.split(',')[1] #用展位符分割,取分割第二部分
# s23= s16.split(',')[2] #用展位符分割,无法运行,超过分割数
print('s20\s21\s22分别为:',s20,s21,s22)
s24='spam'.join(s16)
print('s24为:',s24) #有点看不懂
s25=s21+s22
s26=s16.split(',')[0]+s16.split(',')[1]
print('s25\s26分别为:',s25,s26)
print('----打印每个字母,分行,同行----')
for x in s16:
print(x)
for x in s16:
print(x*2)#双倍打印双倍快乐
s27 = [x*2 for x in s16]#列表双倍打印,横向打印
print(s27)
import math
s40=[1,2,3,4,5,6]
for x in s40:
s41= math.pow(x,2)
s42= math.sqrt(x)
print(s41,'\n',s42) #结果有待研究,只计算最后一个数字的数学值
# map()函数的简介以及语法:
# map是python内置函数,会根据提供的函数对指定的序列做映射。
# map()函数的格式是:
# map(function,iterable,...)
# 第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
# 把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
def square(x):
return x**2
list1 =map(square, [1,2,3,4,5])
print(list(list1)) #需要定义为list();python3中map()返回iterators类型,不再是list类型。进行list转换即可
print('----转义字符代表特殊字符,下次继续更新----')