{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "**程序**是按照一定**顺序**完成任务的流程\n", "\n", "做蛋炒饭步骤:\n", "- 准备米饭\n", "- 准备鸡蛋\n", "- 准备配料\n", "- 炒蛋\n", "- 炒配料\n", "- 调味\n", "- 出锅\n", "\n", "菜谱 = 程序 -- 自然语言 -->程序语言\n", "编写者 是人\n", "执行者 是人ß\n", "\n", "计算机程序和人做饭程序最关键差别是**布尔运算**\n", "- 按照顺序执行任务\n", "- 根据不同情况执行不同任务\n", " ~ 如果条件满足,则重复执行某一任务\n", "\n", "计算机强大便是在于他**可编程**\n", "而可编程的核心在于**布尔运算**及其相应**流程控制**\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "False\n", "True\n" ] } ], "source": [ "print(1 == 2)\n", "print(1 != 2)" ] }, { "cell_type": "markdown", "metadata": { "vscode": { "languageId": "html" } }, "source": [ "# 逻辑运算符\n", "| 比较操作符 | 意义 | 示例 | 布尔值 | \n", "| --- | --- | --- | --- | \n", "| == | 等于 | 1 == 2 | False | \n", "| != | 不等于 | 1 != 2 | True | \n", "| > | 大于 | 1 >2 | False | \n", "| >= | 大于等于 | 1>= 1 | True | \n", "| < | 小于 | 1< 2 | True | \n", "| <= | 小于等于 | 1<=2 | True | \n", "| in | 属于 | \"a\" in \"basic\" | True | " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 布尔运算操作符\n", "操作对象:数字值或字符串值\n", "操作运算符:与、或、非\n", "| and | True | False |\n", "|--------|--------|---------|\n", "| True | True | False | \n", "| False | False | False | \n", "\n", "
\n", "\n", "| or | True | False |\n", "|--------|--------|---------|\n", "| True | True | True | \n", "| False | True | False | \n", "\n", "
\n", "\n", "| not | True | False |\n", "|--------|--------|---------|\n", "| | False | True | " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(True and False) yields: False\n", "(True and True) yields: True\n", "(False and True) yields: False\n", "(True or False) yields: True\n", "(False or True) yields: True\n", "(False or False) yields: False\n", "(not True) yields: False\n", "(not False) yields: True\n" ] } ], "source": [ "print('(True and False) yields:', True and False)\n", "print('(True and True) yields:', True and True)\n", "print('(False and True) yields:', False and True)\n", "print('(True or False) yields:', True or False)\n", "print('(False or True) yields:', False or True)\n", "print('(False or False) yields:', False or False)\n", "print('(not True) yields:', not True)\n", "print('(not False) yields:', not False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 流程控制" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "255 is odd.\n" ] } ], "source": [ "import random\n", "r = random.randrange(1, 1000)\n", "# 暂时忽略以上两句的原理,只需要了解其结果:\n", "# 引入随机数,而后,每次执行的时候,r 的值不同\n", "\n", "if r % 2 == 0:\n", " print(r, 'is even.')\n", "else:\n", " print(r, 'is odd.')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1+1" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n" ] } ], "source": [ "print(1+1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "|英文|中文|\n", "|---|---|\n", "|Assignment|赋值|\n", "|Variable|变量|\n", "|Literal|常量|\n", "|Loop|循环|" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "3\n", "5\n", "7\n", "9\n" ] } ], "source": [ "for i in range(10):\n", " if i % 2 != 0:\n", " print(i)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "打印100以为的质数
\n", "质数定义:一个数,大于等于2,且只有在被它自身或者1做为除数时余数为0
\n", "设n为整数,n>=2;
\n", "若n==2,n是质数;
\n", "若n>2,就把n作为被除数,从2开始一直到n-1都作为除数,逐一计算看看余数是否等于0?
\n", "    如果是,那就不用接着算了,它不是质数;
\n", "    如果全部都试过了,余数都不是0,那么它是质数。
" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n", "3\n", "5\n", "7\n", "11\n", "13\n", "17\n", "19\n", "23\n", "29\n", "31\n", "37\n", "41\n", "43\n", "47\n", "53\n", "59\n", "61\n", "67\n", "71\n", "73\n", "79\n", "83\n", "89\n", "97\n" ] } ], "source": [ "for n in range(2, 100): #range(2,100)表示含左侧 2,不含右侧 100,是不是第三次看到这个说法了?\n", " if n == 2:\n", " print(n)\n", " continue\n", " for i in range(2, n):\n", " if (n % i) == 0:\n", " break\n", " else: # 这里目前你可能看不懂…… 但先关注结果吧。\n", " print(n) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 算法\n", "以上程序,都可以称之为算法,而以上算法也都可以优化。\n", "比方说寻找质数的时候,完全没有必要将终点设在99,按照数学逻辑,设置在√n就好\n", "```python\n", "for n in range(2, 100):\n", " if n == 2:\n", " print(n)\n", " continue\n", " for i in range(2, int(n ** 0.5)+1): #为什么要 +1 以后再说…… n 的 1/2 次方,相当于根号 n。\n", " if (n % i) == 0:\n", " break\n", " else:\n", " print(n) \n", "\n", "优化没有固定的方法,所有工具,其效率都取决于使用他的人" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 函数\n", "- 函数名(Function Name)\n", "- 参数(Parameters)\n", "- 返回值(Return Value)\n", "- 调用(Call)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.1415926" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = abs(-3.1415926)\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "pip install xxx" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def is_prime(n): # 定义 is_prime(),接收一个参数\n", " if n < 2: # 开始使用接收到的那个参数(值)开始计算……\n", " return False # 不再是返回给人,而是返回给调用它的代码……\n", " if n == 2:\n", " return True\n", " for m in range(2, int(n**0.5)+1):\n", " if (n % m) == 0:\n", " return False\n", " else:\n", " return True\n", "\n", "for i in range(80, 110):\n", " if is_prime(i): # 调用 is_prime() 函数,\n", " print(i) # 如果返回值为 True,则向屏幕输出 i" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 细节补充,整体概括" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 语句" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "3\n", "5\n", "7\n", "9\n", "----------------------------------\n", "1\n", "3\n", "5\n", "7\n", "9\n" ] } ], "source": [ "# 通常情况下,建议一行写一条语句\n", "for i in range(10):\n", " if i % 2 != 0:\n", " print(i)\n", "\n", "print(\"----------------------------------\")\n", "\n", "#但是,有时为了简化,也会使用一行表达\n", "print(\"\\n\".join(str(i) for i in range(10) if i % 2 != 0))\n", "\n", "#但是,要注意,这样子写虽然逼格上来了,但是对计算机来说,效率没有上面高" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 语句块" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "3\n", "5\n", "7\n", "9\n", "11\n", "13\n", "15\n", "17\n", "19\n", "Collected odd numbers: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]\n" ] } ], "source": [ "def collect_and_print_odd_numbers(n):\n", " # 初始化一个空列表来存储奇数\n", " odd_numbers = []\n", "\n", " # 循环从0到n(包括n)\n", " for i in range(n + 1):\n", " if i % 2 != 0:\n", " # 如果i是奇数,则将其添加到列表中\n", " odd_numbers.append(i)\n", " \n", " # 打印奇数列表中的每个数字\n", " print(\"\\n\".join(str(num) for num in odd_numbers))\n", "\n", " # 返回奇数列表\n", " return odd_numbers\n", "\n", "# 调用函数,收集并打印0到20之间的奇数\n", "odd_numbers_list = collect_and_print_odd_numbers(20)\n", "print(\"Collected odd numbers:\", odd_numbers_list)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#python的注释一共有两种方法\n", "#一般来说,这种写法放在中间\n", "\n", "\"\"\"\n", "三个引号中间,都是注释区域\n", "\n", "一般来说,这种注释方法写在开头\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\"\"\"\n", "\n", "\"\"\"\n", "#" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n" ] } ], "source": [ "你好 = 1\n", "print(你好)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "3\n", "5\n", "7\n", "9\n", "11\n", "13\n", "15\n", "17\n", "19\n", "Collected odd numbers: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]\n" ] } ], "source": [ "def collect_and_print_odd_numbers(n):\n", "\n", " \"\"\"\n", " 打印并返回从0到给定数字n之间的所有奇数。\n", "\n", " 参数:\n", " n (int): 要检查的最大数字。\n", "\n", " 返回:\n", " list: 包含所有奇数的列表。\n", " \"\"\"\n", " \n", " # 初始化一个空列表来存储奇数\n", " odd_numbers = []\n", "\n", " # 循环从0到n(包括n)\n", " for i in range(n + 1):\n", " if i % 2 != 0:\n", " # 如果i是奇数,则将其添加到列表中\n", " odd_numbers.append(i)\n", " \n", " # 打印奇数列表中的每个数字\n", " print(\"\\n\".join(str(num) for num in odd_numbers))\n", "\n", " # 返回奇数列表\n", " return odd_numbers\n", "\n", "# 调用函数,收集并打印0到20之间的奇数\n", "odd_numbers_list = collect_and_print_odd_numbers(20)\n", "print(\"Collected odd numbers:\", odd_numbers_list)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 操作运算符" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "|运算符号|含义|\n", "|-------|----|\n", "|+|加|\n", "|-|减|\n", "|*|乘|\n", "|**|幂|\n", "|/|除|\n", "|//|取商|\n", "|%|取余|" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 加法示例\n", "a = 5\n", "b = 3\n", "sum_result = a + b # 5 + 3 = 8\n", "print(\"加法结果:\", sum_result)\n", "\n", "# 减法示例\n", "sub_result = a - b # 5 - 3 = 2\n", "print(\"减法结果:\", sub_result)\n", "\n", "# 乘法示例\n", "mul_result = a * b # 5 * 3 = 15\n", "print(\"乘法结果:\", mul_result)\n", "\n", "# 除法示例\n", "div_result = a / b # 5 / 3 = 1.6666666666666667\n", "print(\"除法结果:\", div_result)\n", "\n", "# 幂运算示例\n", "pow_result = a ** b # 5 ** 3 = 125\n", "print(\"幂运算结果:\", pow_result)\n", "\n", "# 取商示例\n", "floordiv_result = a // b # 5 // 3 = 1\n", "print(\"取商结果:\", floordiv_result)\n", "\n", "# 取余示例\n", "mod_result = a % b # 5 % 3 = 2\n", "print(\"取余结果:\", mod_result)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 赋值" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3\n", "2\n" ] } ], "source": [ "a = 1\n", "a = a + 1\n", "a += 1\n", "print(a)\n", "a = 2\n", "print(a)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" } }, "nbformat": 4, "nbformat_minor": 2 }