{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 实践1 python初印象\n", "\n", "## 学习目标\n", "1. 熟悉Jupyter lab交互开发环境\n", "2. 掌握Python 语句的编写,运行和修改\n", "3. 阅读Python微程序,尝试模仿改写程序" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. 安装Jupyter lab \n", "如要在自己电脑本地使用 Jupyterlab 需要在命令提示符窗口(CMD)先用 Python 的包管理工具 pip 来安装:\n", "\n", "`pip install jupyterlab` \n", "\n", "然后就可以用\n", "\n", "`jupyter lab`\n", "\n", "来运行 Jupyterlab,打开 notebook 进行交互式编程的尝试。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.创建使用Notbook文件\n", "\n", "(1)Notbook文件 \n", "File菜单 -> New Notebook 创建一个新的Notbook文件 \n", "\n", "(2)单元格 \n", "Notbook文件是有若干单元格构成,单元格的类型可区分为:Code(代码)、Markdown、RAW。 \n", "\n", "Code类型的单元格中可以编写一条或多条python语句。按上方三角形运行(Run)按钮执行,或快捷键Ctrl+Enter;\n", "RAW类型的单元格是纯文本;\n", "Markdown类型的单元格支持Markdown格式,请自行查阅。 \n", "\n", "(3)使用工具栏命令可以增加,复制,删除,移动单元格。 " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#示例1 一条语句\n", "print(\"Hello Python World!\")" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "说明: \n", "(1)print是一个Python标准输出函数,函数的功能是执行“打印”的功能。 \n", "(2)\"Hello, Python World!\"是字符串,在一对双引号中你可以输入任意文字,包括中文和标点符号,但使用引号要慎重。 \n", "(3)一对圆括号是函数的标志,和print函数名配合使用,不可缺少。 \n", "(4)圆括号里的是函数的参数。此处参数是一个字符串,也就是print函数输出的内容。 \n" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "请在此下方增加一个code单元格,输入一个print命令并执行" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 示例2 多条语句\n", "#Fl1-1 重要的事情说三遍\n", "print(\"重要的事情说三遍\")\n", "print(\"Hello Python World!\")\n", "print(\"Hello Python World!\")\n", "print(\"Hello Python World!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.认识程序的语法错误\n", "当编写的python程序代码没有遵循Python的语法规定时,会报错显示错误信息。学习阅读错误信息,快速定位错误位置,编写程序的基本功。 \n", " File \"C:\\Users\\qtzhu\\AppData\\Local\\Temp/ipykernel_5712/281370357.py\", line 1 \n", " print(\"重要的事情说三遍) <-- 出错的语句 \n", " ^\n", "SyntaxError: EOL while scanning string literal \n", "出错的类型:语法错误 文本串没有结束 \n", " \n", "下面程序有三处语法错误,你能找出来吗?(每找到一个错误,修改后重新执行,阅读错误信息提示)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(\"重要的事情说三遍)\n", "print(\"Hello Python World!\")\n", "print(\"Hello Python World!\"\n", "prin(\"Hello Python World!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4.阅读Python微程序" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#Fl1-2\n", "s = 99999 * 99999\n", "print(s)" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "##### 对此程序简单解读如下:\n", "(1)s是一个变量,它引用不同数据的值。 \n", "(2)\tPython语言允许采用大写字母、小写字母、数字、下划线_和汉字等字符及其组合给变量命名,但名字的首字母不能是数字,中间不能出现空格。 \n", "(3)\tPython语言中,“=”表示赋值运算,左侧变量s引用等号右侧的计算结果,包含赋值运算符(=)的语句称为赋值语句。 \n", "(4)\tprint函数可以输出字符串,例如\"Hello Python World\",也可以直接输出变量(如s作为变量名)的值。 \n", "(5)\tPython中不需要加符号表示语句结束,换行表示一条语句的结束。 \n", "(6)\tFL1-2的程序功能是计算99999*99999并输出结果。 \n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Apr\n" ] } ], "source": [ "# Fl1-3\n", "months=\"MonFebMarAprMayJunJulAugSepOctNovDec\" \n", "monthAbbrev = months[(4-1)*3:(4-1)*3+3]\n", "print(monthAbbrev)" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "##### 对此程序简单解读如下: \n", "(1)\"JanFebMarAprMayJunJulAugSepOctNovDec\" 是一个字符串常量,一对西文双引号是字符串常量的界定符,一对西文单引号也是字符串常量的界定符。 \n", "(2)months是字符串变量。可以通过[ ]和下标来访问字符串中的一个或连续多个字符。 \n", " 一个字符:month[i] ,i表示下标,下标从0开始,month[0]表示第一个字符。 \n", " 多个字符:month[a:b]表示下标从a到b-1的子串。当n=1时,month[0:3]表示’Jan’ \n", "(3)FL1-3的程序功能是通过计算从字符串months中读出第4月的月份缩写。\n", "(4)试将第2句中的4改为1到12的任意整数,观察运行结果。\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Fl1-4\n", "name=input(\"姓名:\")\n", "gender=input(\"性别:\")\n", "if gender==\"男\":\n", " print(\"{}先生,您好!\".format(name))\n", "else:\n", " print(\"{}女士,您好!\".format(name))" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "对此程序简单解读如下:\n", "(1)input函数是一个标准输入函数,接受从键盘输入的字符串数据。函数的参数是一个字符串。执行input函数,首先会输出字符串,提示用户要输入的数据是什么,然后等待用户键盘输入数据,按回车键结束。程序开始的两条输入语句分别接受姓名和性别,数据类型为字符串。\n", "(2)if语句是一条选择语句,根据条件gender==\"男\"为真还是为假,进行不同的处理。\n", "(3)“==”是关系运算符”等于” ,判断左右两边是否相等,相等为True,不相等为False。注意和赋值运算符“=” 区分。\n", "(4)Python采用严格的“缩进”(指每一行代码开始前的空白区域)来表明程序的格式框架,即表示代码之间的包含和层次关系。两句print语句缩进表示了所属关系。\n", "(5)\"{}先生,您好!\".format(name)是格式化的字符串,name变量的值在输出时出现在{}位置。\n", "(5)FL1-4的功能是输入姓名和性别,根据性别的不同,选择不同的称呼输出问候语。\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Fl1-5\n", "n=int(input(\"n=\"))\n", "s=0\n", "for i in range(n+1):\n", " s=s+i\n", "print(\"s=1+2+...{}={}\".format(n,s))" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "对此程序简单解读如下:\n", "(1)input函数能够接受一个键盘输入的字符串。int函数将输入的字符串转化整数,例如输入100,第一条语句的功能为从键盘接受一个整数100,赋值给变量n。\n", "(2)Python通过保留字for实现迭代循环,基本使用方法如下:\n", " for <循环变量> in <可迭代对象> :\n", " <语句块>\n", "(3)range(n+1)函数生成一个0~n的整数序列,变量i遍历取值整数序列0~n中的每一个整数,执行s=s+i,实现将序列中每一个整数累加到s。\n", "(4)print函数中使用字符串的format方法构造了一个格式输出串,每一个占位槽{}对应一个format函数的一个参数。此处第一个{}对应n的值,第二个{}对应s的值。\n", "(5)FL1-5的程序功能是输入一个n,累计1到n的所有整数的和并输出。\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Fl1-6\n", "nums = [12,50,21,56,8,19]\n", "n=len(nums)\n", "s=sum(nums)\n", "average=s/n\n", "print(\"average=\",average)" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "对此程序简单解读如下:\n", "(1)nums是一个列表变量,其中存储了一组整数。\n", "(2)len和sum是内置函数,len函数求一个序列的长度,可以计算列表、字符串等对象的长度。sum函数是累加和函数,返回列表nums中所有整数的和。\n", "(3“/”是除法运算符,执行除法运算。\n", "(4)FL1-6的程序功能是求得一组整数的平均值并输出。\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Fl1-6-1\n", "def mean(numbers):\n", " s = 0.0\n", " for num in numbers:\n", " s = s + num\n", " return s / len(numbers)\n", "\n", "nums = [0,1,2,3,4,5,6,7,8,9]\n", "print(mean(nums))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "对此程序简单解读如下:\n", "(1)nums是一个列表变量,其中存储了一组整数。\n", "(2)def定义个一个函数mean,函数有一个列表参数numbers,函数实现的功能是求列表numbers的平均值,return语句返回平均值\n", "(3)mean(nums)是调用函数mean的语句,讲列表nums传递(赋值)给列表参数numbers,函数返回nums的平均值。\n", "(4)FL1-6的程序功能是求得一组整数的平均值并输出。\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 小试身手 " ] }, { "cell_type": "raw", "metadata": {}, "source": [ "(1)使用for语句改写下面程序,实现一下输出。\n", "重要的事情说三遍\n", "Hello Python World!\n", "Hello Python World!\n", "Hello Python World!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(\"重要的事情说三遍\")\n", "print(\"Hello Python World!\")\n" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "(2)改写程序Fl1-2,实现求任意两个整数的乘积并输出。\n", " 要求:增加变量a和b,表示乘法运算的2个操作数,改写乘法的表达式。\n", " a变量和b变量的值由用户输入,输入两个整数。\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "s = 99999 * 99999\n", "print(s)" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "(3)改写程序FL1-3.py,实现输入一个月份,输出对应的英文缩写。" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "months=\"MonFebMarAprMayJunJulAugSepOctNovDec\" \n", "n = 4\n", "monthAbbrev = months[(n-1)*3:(n-1)*3+3]\n", "print(monthAbbrev)" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "(4)改写程序FL1-3.py,实现顺序输出12月份对应的英文缩写。" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "months=\"MonFebMarAprMayJunJulAugSepOctNovDec\" \n", "n = 4\n", "monthAbbrev = months[(n-1)*3:(n-1)*3+3]\n", "print(monthAbbrev)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.5" } }, "nbformat": 4, "nbformat_minor": 4 }