【期末考试不挂科】Python基础知识及编程题

166 阅读6分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


基础知识

一、Python概述

1.Python语言的特点
  • 简单易学
  • 面向对象
  • 可移植性
  • 免费开源
  • 丰富的库
2.input和print语句
phone_num = input('请输入要充值的手机号码:')
recharge_amount= input('请输入要充值的金额:')
print('手机号码' + phone_num + '成功充值' + recharge_amount + '元')
3.三种注释
# (1)这是单行注释

'''
(2)使用三单引号进行多行注释
'''

"""
(3)使用三双引号进行多行注释
"""
4.标识符命名规则
  • 由字母、数字和下划线组成,但第一个字符不能为数字
  • 标识符对大小写敏感
  • 不能使用保留字(关键字)
5.Python语言的编程规定
  • 缩进:每个缩进级别使用4个空格,不推荐使用Tab

  • 行最大长度:行最大长度为79,换行可以使用反斜杠,但建议用圆括号

  • 空白行:顶层函数和定义的类之间空两行,类中的方法定义之间空一行;函数内逻辑无关的代码段之间空一行,其它地方尽量不要空行

  • 空格的使用

    • 右括号前不要加空格。
    • 逗号、冒号、分号前不要加空格。
    • 函数的左括号前不要加空格。如fun(1)。
    • 序列的左括号前不要加空格﹐如list[2]。
    • 操作符左右各加一个空格,如a +b = c。
    • 不要将多个语句写在同一行。
    • if、for、while语句中的执行语句必须另起一行。
  • 命名规范

    • 不要使用字母“l”(小写的L) 、“O"(大写的O)、“I”(大写的l)作为单字符变量名。(容易看成1、0)
    • 模块名、包名应简短且全为小写。
    • 函数名应该小写,如果想提高可读性,可以用下划线分隔小写单词。
    • 类名首字母一般使用大写。
    • 常量通常采用全大写命名。

二、数字类型与字符串

1.数据类型:
  • 整型
  • 浮点型
  • 复数类型(实部+虚部)
  • 布尔类型(特殊的整型)
2.数据类型的相互转换
3.各类运算符(部分)

(1)算术运算符

运算符说明
**幂:返回×的y次幂
//取整除:返回商的整数部分

(2)逻辑运算符

运算符示例说明
andx and y布尔“与”,如果x为False , x and y返回False ,否则它返回y的计算值
orx or y布尔“或”,如果x为True,它返回True ,否则返回y的计算值
notnot x布尔“非”,如果x为True,返回False,如果x为False,它返回 True

(3)成员运算符

运算符说明
in如果在指定的序列中找到值返回True,否则返回False
not in如果在指定的序列中没有找到值返回True ,否则返回False

(4)运算符优先级

运算符说明
or布尔“或”
and布尔“与”
not布尔“非”
in, not in成员测试(字符串、列表、元组、字典中常用)
is, is not身份测试
<, <=, >, >=, !=, ==比较
|按位或
^按位异或
&按位与
<<, >>按位左移、按位右移
+, -加法,减法
*, /, %乘法、除法、取余
+x, -x正负号
~按位取反
**指数
4.字符串的表示形式
  • 单引号('a')
  • 双引号("123")
  • 三双引号("""注释""")
5.字符串的格式化输出

Python字符串可通过占位符、format()方法和f-strings三种方式实现格式化输出

  • 占位符:"hello, %s" % name
  • format():"hello, {}".format(name)
  • f-strings:f"hello, {name}"

format()方法还可以对数字进行格式化,包括保留n位小数、数字补齐和显示百分比

>>> pi = 3.1415
>>> ":.2f".format(pi)      # 保留两位小数3.14
3.14
>>> num = 1
>>> ":0>3d}".format(num)   # 数字补齐001
>>> num = 0.1
>>> "f:.0%}".format(num)   # 显示百分比10%
6.常用的字符串处理函数
  • 字符串拼接:+
  • 字符串替换:replace()
  • 字符串分割:split()
  • 去除字符串两侧空格:strip()

三、列表、元组、字典、集合

类型可变性唯一性有序性表示
列表[]
元组×()
字典×{}
集合√/×××{}

在这里插入图片描述

四、函数

1.函数的定义和调用
# 计算1……n之间的和


# 函数定义
def get_sum(n):
    res = 0
    for i in range(1, n + 1):
        res += i
    return res


# 函数调用
print(get_sum(5))
2.函数的参数传递方式
  • 位置参数:实际参数按照位置顺序依次传递给形式参数。
  • 默认值参数
  • 关键字参数:通过“形式参数=实际参数”的格式将实际参数与形式参数相关联,根据形参的名称进行参数传递。
  • 不定长参数:不定长参数分为* args和**kwargs两种,它们都接收不定数量的位置参数,其中*args接收的多个参数以元组形式保存,**kwargs接收的多个参数以字典形式保存。
3.局部变量和全局变量(global)
4.递归函数
5.匿名函数(lambda)
6.三大基础函数
  • filter():用于过滤序列,返回由符合条件的元素组成的新列表
  • map():根据提供的函数对指定的序列做映射
  • reduce():对参数序列中元素进行累积

编程题

1.使用for循环输出1+2+3+……+100的结果。

res = 0
for i in range(101):
    res = res + i
print(res)

2.使用while循环输出100以内的偶数。

i = 0
while i < 100:
    if i % 2 == 0:
        print(i, end=' ')
    i += 1

3.使用for循环或while循环输出100以内的素数。

for i in range(2, 100):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        print(i, end=' ')

4.九九乘法表

for i in range(1, 10):
    for j in range(1, i + 1):
        print("%d * %d = %d" % (j, i, i * j), end="\t")
    print()

5.设计一个Circle(圆)类,该类中包括属性radius(半径),还包括__init_()、get_perimeter()(求周长)和get area()(求面积)等方法。设计完成后,创建Circle类的对象并测试求周长和面积的功能。

class Circle:
    radius = 1

    def __init__(self, r):
        self.radius = r

    def get_perimeter(self):
        perimeter = 2 * 3.14 * self.radius
        return perimeter

    def get_area(self):
        area = 3.14 * self.radius ** 2
        return area


circle = Circle(4)
per = circle.get_perimeter()
area = circle.get_area()
print('周长为%.2f' % per)
print('面积为%.2f' % area)

6.打开一个文本文件words_ file.txt, 读取该文件中的所有内容,将这些文件内容中的英文字母按照一定的方法加密后写入到一个新文件new file.txt中 。加密的方法是:将A变成B,B变成C……Y变成Z,Z变成A;a变成b, b变成c,... y变成z,,z变成a,其他字符不变化。

# 注意:要在对应目录下创建words_file.txt文件
source_file = open('words_file.txt', 'r', encoding='utf-8')
new_file = open('new_file.txt', 'w+', encoding='utf-8')
content = source_file.read(1)
while content:
    if content == 'Z':
        content = 'A'
    elif content == 'z':
        content = 'a'
    elif (ord(content) in range(65, 90)) or (ord(content) in range(97, 122)):
        content = chr(ord(content) + 1)
    new_file.write(content)
    content = source_file.read(1)
source_file.close()
new_file.close()