# random各种使用方法
import random
# 随机生成[0.1)的浮点数
print("random():", random.random())
# 随机生成1000-9999之间的整数
print("randint(1000, 9999):", random.randint(1000, 9999))
# 随机生成0-20之间的偶数
print("randrange(0, 21, 2):", random.randrange(0, 21, 2))
# 随机生成0-20之间的浮点数
print("uniform(0, 20):", random.uniform(0, 20))
# 从序列中随机选择一个元素
list_string = ['a', 'b', 'c', 'd', 'e']
print("choice(list):", random.choice(list_string))
print("choice(string):", random.choice('abcd'))
# 对列表元素随机排序
list_number = [1, 2, 3, 4, 5]
random.shuffle(list_number)
print("shuffle(list):", list_number)
# 从指定序列中随机获取指定长度的片断
print("sample(sequence):", random.sample('abcdefg', 2))
s.strip()
s = input()
if(s.strip() == 'zzh'):#小括号里面没有东西的话默认空格与回车
print(666)
x = s.strip(' *')#去掉字符串中小括号里面的字符,有几个去掉几个
print(x)
** 678**
>>>678
split()拆分字符串示例
s = 'Have dinner'
print(s.split( ))
>>['Have', 'dinner']
s = 'www.baidu.com'
print(s.split('.'))
>>['www', 'baidu', 'com']
s = 'www.baidu.com'
print(s.split('.',1))
>>['www', 'baidu.com']
s = 'www.baidu.com'
print(s.split('.',2)[0])
>>www
s = 'https://www.cnblogs.com/hjhsysu/p/5\00356.html'
x = s.split('//')[1].split('.')[1]
print(x)
>>cnblogs
s = 'kkkkpythonkkkiskkgoodkk'
print(s.split('k'))
>>['', '', '', '', 'python', '', '', 'is', '', 'good', '', '']
对于分隔符出现在首尾的情况,在首尾处分割,会产生同一个空串,对于出现在字符串中间的情况,单独出现,和普通情况没有区别,如果出现多个,两个分隔符中间就会产生一个空串。
格式: int (a,b)
a:转入的第一个参数是需要转换的其他进制的字符串形式的数字
b:第一个参数所属的进制数,为数字类型
a,b = input().split(',')
b = int(b)
c = int(a,b)
print(c)
>>011,2
3
>>45,8
37
bin(a) a为传入的十进制数字,数据类型为数字类型
n = 3
x = bin(n)
print(x)
>>0b11
oct(a) a 传入数字为int
n = 9
x = oct(n)
print(x)
>>0o11
hex(a) a 为int类型
n = 16
x = hex(n)
print(x)
>>0x10
小结:总结一下就是除了int()函数以外,其他的几个函数(bin()、oct()、hex())只需要传入一个数据,并且其数据类型都为数字类型。int()函数需要传入两个数据,并且第一个数据的数据类型都为字符串类型,第二个参数为第一个数据对应的进制数
根据提供的函数对指定的序列做映射
map()函数的格式是:
map(function,iterable,...)
第一个参数为接受的函数名,可以是表示元素类型的int/str/float.... 也可以是自定义函数名。
后面的参数接受一个或多个可迭代的序列,返回的是一个集合。把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
去掉参数最外侧引号并执行余下语句的函数
---eval()函数的基本使用格式:
Eval(<字符串或字符串变量>)
>>> eval(‘1’)
1
>>> eval(‘”1+2”’)
‘1+2’
>>> eval(“1+2”)
3
>>> eval(‘print(“Hello”)’)
Hello
-关于eval()函数的好题:
获得用户输入的一个字符串,格式如下:
M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)
根据OP,输出M OP N的运算结果,统一保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。
答案:
s = input()
print("{:.2f}".format(eval(s)))
附言:体会eval()函数的作用,在编程中用处很大。
出自python123.io
7.1.1 pow函数
pow(x,y)函数:计算xy ,,想算多大算多大
7.2.2 4种进制表示形式
十进制:1010,99,-217
二进制,以0b或0B开头: 0b010, -0B101
八进制,以0o或0O开头:0o123, -0O456
十六进制,以0x或0X开头:0x9a, -0X89
7.2.1 浮点数之间的运算存在不确定尾数,不是bug
>>> 0.1+0.2
0.30000000000000004
>>> 0.2+0.2
0.4
>>> 0.1+0.2 == 0.3
False
>>> round(0.1+0.2, 1) == 0.3
True
7.2.2 round函数
因为浮点数之间的运算存在不确定尾数,所以产生了此函数
-round(x,d):对x四舍五入,d是小数截取位数
-浮点数间的运算与比较用round()函数辅助
-不确定尾数一般发生在10-16左右,round()十分有效
7.2.3 科学计数法表示法
-使用字母e或E作为幂的符号,以10为基数,格式如下:
-例如:4.3e-3 值为0.0043 9.6E5 值为 960000.0
-定义 j = √-1 ,以此为基础,构建数学体系
-a+bj 被称为复数,其中,a是实部, b是虚部
-z.real获得实部 z.imag获得虚部
类型间可进行混合运算,生成结果为‘最宽’类型
-三种类型存在一种逐渐‘扩展’或’变宽’的关系:
整数 -> 浮点数 -> 复数
-例如: 123+4.0=127.0 (整数+浮点数=浮点数)
一些以函数形式提供的数值运算功能
-abs(x)
绝对值 x的绝对值 abs(-10.01) >> 10.01
-divmod(x,y)
商余,(x//y,x%y) , 同时输出商和余数 divmod(10,3) >> (3,1)
-pow(x,y[,z])
幂(余),(x**y)%z, [..]表示参数z可以省略 pow(3,pow(3,99),10000)
>>4587
-round(x[,d])
四舍五入,d是保留小数位数,默认值为0
round(-10.123,2) >>>-10.12
-max(x1 ,x2,…, xn )
最大值,返回x1,x2,…,xn中的最大值, n不限
-min(x1,x2,…,xn)
最小值,返回x1,x2,…,xn中的最小值, n不限
-int(x)
将x变成整数,舍弃小数部分
int(123.45)结果为123;int(‘123’)结果为123
-float(x)
将x变成浮点数,增加小数部分
float(12)>>>12.0;float(‘1.23’) >>>1.23
-complex(x)
将x变成复数,增加虚数部分
complex(4) >>4+0j
使用[M:N:K]根据步长对字符串切片
-<字符串>[M:N], M缺失表示至开头,N缺失表示至结尾
str = '零一二三四五六七八九十'[:3]
print(str)
>>零一二
-<字符串>[M:N:K],根据步长K对字符串切片
str = '零一二三四五六七八九十'[1:8:2]
print(str)
>>一三五七
-当k为-1时,则反向
str = '零一二三四五六七八九十'[::-1]
print(str)
>>十九八七六五四三二一零
str = '零一二三四五六七八九十'[::-2]
print(str)
>>十八六四二零
\’’ >>’’
\b 回退 \n换行 \r回车(光标移动到本行首)
-len(x)
长度,返回字符串x的长度
len(‘123456’) >>6
-str(x)
任意类型所对应的字符串形式 str(123) >> ‘123’
-chr(u)
u为Unicode编码,返回其对应的字符
-ord(x)
x为字符,返回其对应的Unicode编码
示例:
- print('1+1=2' + chr(10004))
1+1=2✔
- print(chr(9800))
♈
- for i in range(12):
print(chr(9800+i), end='')
♈♉♊♋♌♍♎♏♐♑♒♓
一些以方法形式提供的字符串处理功能
-str.lower() 或 str.upper()
返回字符串的副本,全部字符为小写/大写
a = 'AbCDEfgh'.lower()
b = 'asdYUI'.upper()
print(a)
print(b)
>>abcdefgh
ASDYUI
-str.count(sub)
返回字符串sub在str中出现的次数
a = 'aaabbbb'.count('a')
print(a)
>>3
-str.replace(old,new)
返回字符串str副本,所有old子串被替换为new
a = 'python'.replace('n','n123.io')
print(a)
>>python123.io
-str.center(width[,fillchar])
字符串str根据宽度居中,fillchar可选
a = 'python'.center(20,'=')
print(a)
>>=======python=======
-str.join(iter)
在iter变量除最后元素外每个元素后增加一个str
a = ','.join('12345')#主要用于字符串分割符等
print(a)
>>1,2,3,4,5
格式化是对字符串进行格式表达的方式
-字符串格式化使用.format()方法,用法如下:
<模板字符串>.format(<逗号分隔的参数>)
示例:
(1)用*填充多余空格,format内的字符靠右输出,宽度30字符,数字千位分割
a = '{0:*>30,}'.format(123456789)
print(a)
>>*******************123,456,789
(2)H填充多余空格,format内的字符居中,宽度为20字符,保留3位小数
a = '{:H^20.3f}'.format(1234.56789)
print(a)
>>HHHHHH1234.568HHHHHH
a = '{0:.4}'.format('python')
print(a)
>>pyth
a = '{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}'.format(425)
print(a)
>>110101001,Ʃ,425,651,1a9,1A9
a = '{0:e},{0:E},{0:f},{0:%}'.format(3.14)
print(a)
>>3.140000e+00,3.140000E+00,3.140000,314.000000%
filter()函数用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成新的列表。
语法如下:
filter(function,iterable)
# 其中function为函数,iterable为序列
序列中的每个元素作为参数传递给函数进行判断,返回True或者False,最后将返回的元素放到新列表中。
筛选出序列中为奇数的元素
def is_odd(n):
return n%2 == 1
lst1 = filter(is_odd,[1,2,3,4,5,6,7,8,9,10])
补充:3.7.3版filter需要嵌套在list里面
list1 = list(lst1)
print(list1)
>>> [1,3,5,7,9]
student = {'num': '123456', 'name': 'kelvin', 'age': 18}
for key,value in student.items():
print('\nkey:'+key)
print('value:'+str(value))
#key,value只是一个见明知义的变量,它们可以任意取名
#student.items()返回的是一个键值对列表
print(student.items())
#接下来,for循环依次将每一个键值对元组储存到指定的两个变量中
>>
key:num
value:123456
key:name
value:kelvin
key:age
value:18
dict_items([('num', '123456'), ('name', 'kelvin'), ('age', 18)])
使用方法keys(),此方法会返回一个键列表
student = {'num':'123456','name':'kelvin','age':18}
for key in student.keys():
print(key)
>>>
num
name
age
使用方法values()会返回一个值列表
例子:
打印出学生字典中所有的值:
student = {'num':'123456','name':'kelvin','age':18}
for value in student.values():
print(value)
>>>
123456
kelvin
18
它是一个python的内置函数
例如
seq = ['one','two','three']
print(list(enumerate(seq)))
>>[(0, 'one'), (1, 'two'), (2, 'three')]
将一个可读取的对象传递给enumerate函数,他返回一个枚举类型的对象。将其转化为列表后输出元素为元祖(‘序号’,对应元素)的一个列表,另外,如果当你想要让索引不从0开始,你可以在使用时传一个参数,例如:
seq = ['one','two','three','four']
lst = enumerate(seq,start=5)
for i in lst:
print(i)
>>>
(5, 'one')
(6, 'two')
(7, 'three')
(8, 'four')