Advertisement

python刷题宝典(1) 基础知识

阅读量:

基础知识
准备
环境:安装Python 3.10及其扩展包(如NumPy、Pandas)。
下载:从官方网站获取并解压源码。
输入输出
数字输入:

  • input()获取单行输入。
  • int(input())转为整数;float(input())转为浮点数;str(input())转为字符串。
  • 多个字符串输入可结合split()处理。
    文件读取:
  • 使用open()打开文件并读取内容,默认以UTF-8编码解析文件。
    字符串操作
    常用操作:
  • 拼接:var = var1 + var2
  • 转换:list(var)将字符串转为字符列表;str()将字符列表转回字符串。
  • 表达式计算与拆分:
    python str = '1+2*3/4' eval(str) str.split() str.replace('python', 'java')
    列表操作
    创建方式:
    python list1 = ['Google', 'Runoob', 1997, 2000] list2 = [i for i in range(5)] 切片与索引: python
    nums = [1,2,3,4,5]
    print(nums[0:4]) # 不包含索引4
    print(nums[:-2:2]) # 步长为2
    print(nums[-2:1:-1]) # 反向步长为-1
    修改与删除:
    `

基础知识

准备

环境安装:
pycharm

教程网站:
菜鸟教程

1 基础输入输出

1.1 字符串输入

复制代码
    s = input()

1.2 数字输入

复制代码
    n = int(input())

1.3 多个字符串输入

复制代码
    strs = input().split()

1.4 固定个数字输入

复制代码
    a,b = map(int,input().split())

知识点: map(fun,list) 对list中的所有元素执行fun,返回map类型

1.5 多个数字输入

复制代码
    nums = list(map(int,input().split()))

知识点: map强转成list

1.6 多行输入

复制代码
    #知道几行
    updates= []
    for i in range(n):
    updates.append(input())
    
    
    #不知道几行
    updates = []
    while True:
    update = list(map(int, input().split()))
    if len(update) == 3: #每行三个
        updates.append(update)
    else:
        print(updates)
        break

知识点:while循环,不符合条件时跳出

1.7 输入列表转换

复制代码
    import ast
    s = ast.literal_eval(input())
    
    >In: [[1,3,2],[2,4,3],[0,2,-2]]
    >Out: [[1, 3, 2], [2, 4, 3], [0, 2, -2]]

1.8 输出

复制代码
    nums = [1,2,3]
    print(nums)
    #不换行输出
    for num in nums:
    print(num,end=" ")
    #格式化输出
    print('Hello {} world {}'.format('python1','python2'))
    print('Hello {1} world {0}'.format('python1','python2'))
    print("pi is %.3f" % 3.1415926)
    print('{:0>2d}:{:0>2d}'.format(5,34))

2 数字

2.1 数字转字符串

复制代码
    s =  str(num)  #数字转字符串
    s =  hex(num)  #数字转十六进制
    >>>hex(255)
    '0xff'
    >>> hex(-42)
    '-0x2a'
    >>> hex(1L)
    '0x1L'
    >>> hex(12)
    '0xc'
    s =  oct(num)  #数字转八进制
    >>> oct(10)
    '0o12'
    >>> oct(20)
    '0o24'
    >>> oct(15)
    '0o17'
    s =  bin(num)  #数字转二进制
    >>>bin(10)
    '0b1010'
    >>> bin(20)
    '0b10100'

2.2 字符串转数字

复制代码
    >>>int()               # 不传入参数时,得到结果0
    0
    >>> int(3)
    3
    >>> int(3.6)
    3
    >>> int('12',16)        # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
    18
    >>> int('0xa',16) 
    10 
    >>> int('10',8) 
    8

2.3 常见运算

表达式的语法很直白: +, -, * , / , % 和其它语言里一样

// 特殊除法,返回值小数位和计算前保持一致,常用于整除

复制代码
    >>> 7//2
    3
    >>> 7.0//2
    3.0
    >>> 7//2.0
    3.0

**幂运算

复制代码
    >>> 5 ** 2  # 5 的平方
    25
    >>> 2 ** 7  # 2的7次方
    128

例题:

类型转换 HJ57 高精度整数加法

进制转换 计算int型正整数在内存存储中二进制表示中的1的数量 https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9?tpId=37&tqId=21238&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

2.4 常用函数

复制代码
    sqrt(x)   返回数字x的平方根。
    pow(x, y) x**y 运算后的值。
    max(x1, x2,...)   返回给定参数的最大值,参数可以为序列。
    min(x1, x2,...)   返回给定参数的最小值,参数可以为序列。
    floor(x)  返回数字的下舍整数,如math.floor(4.9)返回 4
    abs(x)    返回数字的绝对值,如abs(-10) 返回 10
    round(x [,n])返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。

3 字符串

复制代码
    Python 中字符用单双引号都可以
    var1 = 'Hello World!'
    var2 = "Runoob"

索引从左或右都可以

在这里插入图片描述

当前尝试的外链图片无法正常访问...,请确保将图片保存下来后重新尝试上传

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KrraExgj-1652597021638)(img_1.png)]

复制代码
    字符串常用操作
    var = var1+var2  #字符串拼接
    list(var)   #字符串转list
    
    计算表达式:
    str = '1+2*3/4'
    eval(str)
    
    字符串拆分
    str = 'hello world! python'
    str.split()
    
    字符串替换
    str.replace("python","java")

例题:

该课程包含...HJ54 表达式求值......HJ50 四则运算...两个核心模块

第一个模块主要讲解如何实现复杂表达式的求值过程

获取索引和切片操作 [HJ1 字符串最后一个词的长度属性](https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da?tpId=37&tqId=21224&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=圆工罭測觫�� %E7%A8%8B%E7%B1 %E6%B8 %E7%B1)

该算法采用HJ2方法进行特定字符频率的统计。
https://www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1?tpId=37&tqId=21225&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

该代码块用于定义名为HJ10的字符个数统计功能

标签 [HJ46 截取字符串] 用于引用官方链接:https://www.nowcoder.com/practice/a30bbc1a0aca4c27b86dd88868de4a4a?tpId=37&tqId=21269&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

对[HJ106 字符逆序]进行翻转操作

4 列表

Python中的列表可以被视为一个高级的数组结构。

复制代码
    创建列表
    list1 = ['Google', 'Runoob', 1997, 2000]
    list2 = [1, 2, 3, 4, 5 ]
    list3 = ["a", "b", "c", "d"]
    list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    list5 = ['1', 2, 'a', [3, 4]]
    
    nums = [0]*10
    nums = [x for x in range(10)]
    nums = list(range(10))
    
    >>知识点:range 生成一个范围,三个参数,一般只填第二个,其他两个可以省略
    参数1起点可不写,默认0
    参数2终点不包含自己
    参数3步长
    
    列表索引,同字符串
    nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
    print(nums[0:4])  #不包含后面的索引
    print(nums[:-2:2]) #step 2
    print(nums[-2:1:-1]) # step -1
    
    列表增删
    nums = [10, 20, 30, 40]
    nums.append(50)
    nums += [50,60]
    nums.append([50,60])
    nums.extend([50,60])
    
    del nums[1]
    nums.remove(1)
    
    #函数
    len(nums)
    max(nums)
    min(nums)
    
    #方法
    list.count(obj)  #统计某个元素在列表中出现的次数
    list.index(obj) #从列表中找出某个值第一个匹配项的索引位置
    list.insert(index, obj) #将对象插入列表
    
    #***pop 让list可以当堆栈或队列使用***
    list.pop([index=-1])    #移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    
    list.remove(obj)    #移除列表中某个值的第一个匹配项
    list.reverse()  #反向列表中元素
    list.sort( key=None, reverse=False)#    对原列表进行排序
    
    
    #列表去重
    strs = list(set(strs))
    
    #列表拼接字符串
    list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    " ".join(list4)
    
    #判断元素是否在列表中
    if 'red' in list4:
    print('true')
    else:
    print('false')

例题:

有序数据处理中对BM46中最小值的K个数值进行列表排序切片

即明明模块涉及随机数值的排序功能

涉及具体排序方法

list反转,list字符串互转 HJ11 数字颠倒
HJ12 字符串反转
HJ13 句子逆序

参考资料:

list创建方法

全部评论 (0)

还没有任何评论哟~