Python基础知识入门(一)

1 random函数

# 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))

2 strip函数

s.strip()

s = input()

if(s.strip() == 'zzh'):#小括号里面没有东西的话默认空格与回车

    print(666)



x = s.strip(' *')#去掉字符串中小括号里面的字符,有几个去掉几个

print(x)



**  678**

>>>678

3 split 函数

split()拆分字符串示例

3.1 默认空格符

= 'Have dinner'

print(s.split( ))

>>['Have', 'dinner']

3.2 以.为分隔符

= 'www.baidu.com'

print(s.split('.'))

>>['www', 'baidu', 'com']

3.3 分割一次

= 'www.baidu.com'

print(s.split('.',1))

>>['www', 'baidu.com']

3.4分割两次,取第一个分片(序号0)

= 'www.baidu.com'

print(s.split('.',2)[0])

>>www

3.5应用例子

= 'https://www.cnblogs.com/hjhsysu/p/5\00356.html'

= s.split('//')[1].split('.')[1]

print(x)

>>cnblogs

3.6 一个有趣的例子

s = 'kkkkpythonkkkiskkgoodkk'

print(s.split('k'))

>>['', '', '', '', 'python', '', '', 'is', '', 'good', '', '']

对于分隔符出现在首尾的情况,在首尾处分割,会产生同一个空串,对于出现在字符串中间的情况,单独出现,和普通情况没有区别,如果出现多个,两个分隔符中间就会产生一个空串。

4 进制转换函数

4.1  int() 其他进制转换到十进制

格式: int (a,b)

a:转入的第一个参数是需要转换的其他进制的字符串形式的数字

b:第一个参数所属的进制数,数字类型

a,b = input().split(',')

b = int(b)

c = int(a,b)

print(c)

>>011,2

3

>>45,8

37

4.2 bin() 十进制转换到二进制

bin(a) a为传入的十进制数字,数据类型为数字类型

n = 3

x = bin(n)

print(x)

>>0b11

4.3 oct() 十进制转换成八进制

oct(a) a 传入数字为int

n = 9

x = oct(n)

print(x)

>>0o11

4.4 hex() 十进制转换成十六进制

hex(a) a 为int类型

n = 16

x = hex(n)

print(x)

>>0x10

小结:总结一下就是除了int()函数以外,其他的几个函数(bin()、oct()、hex())只需要传入一个数据,并且其数据类型都为数字类型。int()函数需要传入两个数据,并且第一个数据的数据类型都为字符串类型,第二个参数为第一个数据对应的进制数

5 map函数

根据提供的函数对指定的序列做映射

map()函数的格式是:

map(function,iterable,...)

第一个参数为接受的函数名,可以是表示元素类型的int/str/float.... 也可以是自定义函数名。

后面的参数接受一个或多个可迭代的序列,返回的是一个集合。把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。

6 eval() 评估函数

去掉参数最外侧引号并执行余下语句的函数

---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基本数据类型

7.1 整数类型

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 浮点数类型

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为基数,格式如下:

e  表示 a*10b

-例如:4.3e-3 值为0.0043    9.6E5 值为 960000.0

7.3 复数类型

-定义 j = √-1 ,以此为基础,构建数学体系

-a+bj 被称为复数,其中,a是实部, b是虚部

-z.real获得实部    z.imag获得虚部

8数字类型的关系

类型间可进行混合运算,生成结果为‘最宽’类型

-三种类型存在一种逐渐‘扩展’或’变宽’的关系:

     整数 -> 浮点数 -> 复数

-例如: 123+4.0=127.0 (整数+浮点数=浮点数)

9数值运算函数

一些以函数形式提供的数值运算功能

-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

10 字符串

10.1 字符串切片

使用[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)

>>十八六四二零

10.2转义符

\’’ >>’’

\b 回退 \n换行 \r回车(光标移动到本行首)

10.3 字符串处理函数

-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='')

♈♉♊♋♌♍♎♏♐♑♒♓

10.4 字符串处理方法

一些以方法形式提供的字符串处理功能

-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

10.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%

11 filter()函数

11.1 简介和语法

filter()函数用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成新的列表

语法如下:

filter(function,iterable)

# 其中function为函数,iterable为序列

序列中的每个元素作为参数传递给函数进行判断,返回True或者False,最后将返回的元素放到新列表中。

11.2 用法示例:

筛选出序列中为奇数的元素

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]

12 遍历python字典

12.1 遍历字典中所有的键值对

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)])

12.2 遍历字典的所有键

使用方法keys(),此方法会返回一个键列表

student = {'num':'123456','name':'kelvin','age':18}

for key in student.keys():

print(key)

>>>

num

name

age

12.3 遍历字典中的所有值

使用方法values()会返回一个值列表

例子:

打印出学生字典中所有的值:

student = {'num':'123456','name':'kelvin','age':18}

for value in student.values():

print(value)

>>>

123456

kelvin

18

13 enumerate函数

它是一个python的内置函数

  • enumerate意为:枚举,列举
  • 对于一个可迭代的对象,enumerate将它变成一个索引序列

例如

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')

你可能感兴趣的:(python,1024程序员节,python)