计算机二级练习仓库
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 

1601 рядки
71 KiB

{
"cells": [
{
"cell_type": "markdown",
"id": "b57930d5",
"metadata": {},
"source": [
"## 实践1 初识Python "
]
},
{
"cell_type": "markdown",
"id": "b734eb0e",
"metadata": {},
"source": [
"(1)使用for语句改写下面程序,实现一下输出。\n",
"重要的事情说三遍\n",
"Hello Python World!\n",
"Hello Python World!\n",
"Hello Python World!"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "beba0cb8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello Python World!\n",
"Hello Python World!\n",
"Hello Python World!\n"
]
}
],
"source": [
"for i in range(3):\n",
" print(\"Hello Python World!\")"
]
},
{
"cell_type": "raw",
"id": "13c70a11",
"metadata": {},
"source": [
"(2)改写程序Fl1-2,实现求任意两个整数的乘积并输出\n",
" 要求:增加变量a和b,表示乘法运算的2个操作数,改写乘法的表达式。\n",
" a变量和b变量的值由用户输入,输入两个整数。\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "1c59a977",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a=10\n",
"b=50\n",
"500\n"
]
}
],
"source": [
"a=int(input(\"a=\"))\n",
"b=int(input(\"b=\"))\n",
"s =a* b\n",
"print(s)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ef6056cb",
"metadata": {},
"outputs": [],
"source": [
"(3)改写程序FL1-3.py,实现输入一个月份,输出对应的英文缩写"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "e06373bd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"month=7\n",
"Jul\n"
]
}
],
"source": [
"months=\"MonFebMarAprMayJunJulAugSepOctNovDec\" \n",
"n = int(input(\"month=\"))\n",
"monthAbbrev = months[(n-1)*3:(n-1)*3+3]\n",
"print(monthAbbrev)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "053250c7",
"metadata": {},
"outputs": [],
"source": [
"(4)改写程序FL1-3.py,实现顺序输出12月份对应的英文缩写。"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "dee2c400",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mon\n",
"Feb\n",
"Mar\n",
"Apr\n",
"May\n",
"Jun\n",
"Jul\n",
"Aug\n",
"Sep\n",
"Oct\n",
"Nov\n",
"Dec\n"
]
}
],
"source": [
"months=\"MonFebMarAprMayJunJulAugSepOctNovDec\" \n",
"for n in range(1,13):\n",
" monthAbbrev = months[(n-1)*3:(n-1)*3+3]\n",
" print(monthAbbrev)"
]
},
{
"cell_type": "markdown",
"id": "9bf6e1a2",
"metadata": {},
"source": [
"## 实践2 Python 基本语法"
]
},
{
"cell_type": "markdown",
"id": "b0d77cb9",
"metadata": {},
"source": [
"1.输入以下表达式并查看结果。\n",
"\n",
"①23+3 ②23>3 ③'23'+'3' ④23/3 ⑤ 23//3⑥23%3⑦23**3 \n",
"问题:\n",
"表达式结果为整数类型有哪些? ①⑤ ⑥⑦\n",
"表达式结果为浮点数类型有哪些?④\n",
"表达式结果为字符串类型有哪些? ③ \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dffd4966",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "7e403538",
"metadata": {},
"source": [
"2.执行完下面数值表达式语句后,变量a~k的值分别是多少?\n",
"```python \n",
"a=5\n",
"b=2\n",
"a*=b\n",
"b+=a\n",
"a,b=b,a\n",
"c=6\n",
"d= c%2+(c+1)%2\n",
"e =2.5\n",
"f=3.5\n",
"g=(a+b)%3+int(f)//int(e)\n",
"h=float(a+b)%3+int(f)//int(e)\n",
"i=(a+b)/3+f%e\n",
"j=a<b and c<d\n",
"k=not j and True\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "e1cb878e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(12, 10)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = 5\n",
"b = 2\n",
"a *= b\n",
"b += a\n",
"a,b = b,a\n",
"a,b"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "13189923",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = 6\n",
"d = c%2+(c+1)%2\n",
"d"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "66f1c8fa",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e = 2.5\n",
"f = 3.5\n",
"g = (a+b)%3+int(f)//int(e)\n",
"g"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "57c7310b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.0"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"h = float(a+b)%3+int(f)//int(e)\n",
"h"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "1cef28c2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8.333333333333332"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"i = (a+b)/3+f%e\n",
"i"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "0a1c57f7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"j = a<b and c<d\n",
"j"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "24808a29",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"k = not j and True\n",
"k\n"
]
},
{
"cell_type": "markdown",
"id": "7a209dc6",
"metadata": {},
"source": [
"2.条件表达式 \n",
"假设执行了如下语句 \n",
"x=384 \n",
"a,b=2.56769, 2.56789 \n",
"写出下面条件判断语句,并测试结果。 \n",
"(1)判断x是否是奇数; \n",
"(2)判断x是否能被3和5整除; \n",
"(3)判断x是否能被3或5整除; \n",
"(4)判断b与a的差值不超过0.0001。 "
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "cd9006c5",
"metadata": {},
"outputs": [],
"source": [
"x=384 \n",
"a,b=2.56769, 2.56789 "
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "1a26f065",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#判断x是否是奇数\n",
"x % 2 == 1"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "2d1939ce",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#判断x是否能被3和5整除\n",
"x % 3 == 0 and x % 5 == 0"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "531a8143",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#判断x是否能被3或5整除\n",
"x % 3 == 0 or x % 5 == 0"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "fdb75133",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#判断b与a的差值不超过0.0001\n",
"abs(b-a) < 0.0001"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "3267de25",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.00019999999999997797"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b-a"
]
},
{
"cell_type": "markdown",
"id": "308be02a",
"metadata": {},
"source": [
"## 实践3 模块和函数 小试身手\n",
"1.使用math模块的数学函数"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6959d040",
"metadata": {},
"outputs": [],
"source": [
"import math"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e3527c70",
"metadata": {},
"outputs": [],
"source": [
"math.sqrt(22+33)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0f526d5e",
"metadata": {},
"outputs": [],
"source": [
"math.log10(100)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3769e583",
"metadata": {},
"outputs": [],
"source": [
"math.exp(2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c6c5f3d7",
"metadata": {},
"outputs": [],
"source": [
"math.fmod(4,3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "420d3c4a",
"metadata": {},
"outputs": [],
"source": [
"math.sin(2*math.pi)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0a2b8a61",
"metadata": {},
"outputs": [],
"source": [
"math.gcd(12,9)"
]
},
{
"cell_type": "markdown",
"id": "25204f11",
"metadata": {},
"source": [
"\n",
"2. 自定义求矩形面积的函数"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "87448f3f",
"metadata": {},
"outputs": [],
"source": [
"#定义一个函数getArea(length,width),计算长为length,宽为width的矩形面积。 \n",
"def getArea(length,width):\n",
" return length*width"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "03b2e0df",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10.0"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"getArea(2.5,4.0)\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "6ee9638f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"length=25.7\n",
"width=55.8\n",
"面积: 1434.06\n"
]
}
],
"source": [
"l,w = float(input(\"length=\")),float(input(\"width=\"))\n",
"print(\"面积:\",getArea(l,w))"
]
},
{
"cell_type": "markdown",
"id": "c2f98f2a",
"metadata": {},
"source": [
"## 实践4 逻辑判段和选择结构 小试身手\n",
"1.编写程序:输入半径r,输出以r为半径的圆的面积。使用math库中的数学函数math.pi,如果输入数据为负数,输出\"ERROR\""
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "c6a5a039",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"r=-2.9\n",
"ERROR\n"
]
}
],
"source": [
"# math.pi的导入方法是在程序开头加上下面一行代码,程序中用 math.pi 表示 pi\n",
"import math\n",
"r = float(input(\"r=\"))\n",
"if r < 0:\n",
" print(\"ERROR\")\n",
"else:\n",
" print(math.pi*r*r)"
]
},
{
"attachments": {
"image-2.png": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAncAAACPCAYAAACYlP0/AAAgAElEQVR4Ae3dB7RsRZU38IdrRhRFSZJBMiIZJErOimREcpIgIiAgOUiWqJIEQaICCkpUkZzEITkojGAAARMYmGEcZ5hBx/rWr+arN2favvd2n3O6733v7VqrV/fte/qcOrt27f3f/72rzqQULSQQEggJhARCAiGBkEBIYKqRwKSp5k7iRkICIYGQQEggJBASCAmEBFKAu1CCkEBIICQQEggJhARCAlORBALcTUWDGbcSEggJhARCAiGBkEBIIMBd6EBIICQQEggJhARCAiGBqUgCAe6mosGMWwkJhARCAiGBkEBIICQQ4C50ICQQEggJhARCAiGBkMBUJIEAd1PRYA7qVv7617+m//7v/05//vOf0xtvvJH+67/+K/3nf/7n5Je//c8xjo02fAmMNkbGx7j95S9/ifEZ/tDEFUMCIYGQwNAlEOBu6CKfsi4INABu//Ef/5Fee+219Lvf/S795je/Sb/85S/TL37xi/SrX/0qvfzyy+mf//mf8zGODYA33DHuNka//vWv8/iUMfr973+f/vSnP+WxjPEZ7vjE1UICIYGQwLAlEOBu2BKfgq4HBGB9ALp/+qd/St/85jfTF7/4xXTKKaekww8/PB166KHpyCOPTJ/5zGfS17/+9fTUU08lIAKrF204EjBGWLlXXnkl/eAHP5g8RieccEI6+OCD0yGHHJKOP/74dPnll6d/+Id/SH/4wx8ywBtO7+IqIYGQQEggJDAeEghwNx5Sn0KuKc2K7Xn22WfTLbfckk488cS0xx57pE033TSttdZaadVVV82vtddeO33iE59IX/7ylzPAw+JFG44EjNG//du/pccffzwDOMB73333zWO08sorp+WWWy6tssoq6cMf/nC64IIL0tNPP53+9V//Nadoh9PDuEpIICQQEggJDFsCAe6GLfEp6HpqtP7lX/4lffe7301f+MIX0hFHHJGOPfbYdPbZZ6dLL700g4Xjjjsubb755ulDH/pQ+tjHPpYZvJ///OdT0F1O2V2VBv/tb3+bLrvssrTrrrsmjJ2xuuqqq/K78dpxxx3T+973vvTRj340ffWrX00//vGP0x//+Mcp+8aj9yGBkEBIICQwogQC3I0omvgHcAcE/PCHP0w33nhjZoZuuOGG9MADD2SG7tFHH03XX3992meffdIHP/jBtM0222SQATxEG44EgLtXX3013XTTTTn9eu2116aHHnoop9GlaW+77bbMuC611FJps802S+eee2567LHHcnp2OD2Mq4QEQgIhgZDAsCUQ4G7AEpc2UxP1+uuv5xSn95EWHTjW/9S5Oc4iBu9q2Hw37NWO6rlcW3G+eronnngip2gtoAD6fP/ggw9mRg+w23bbbTO4k8adFhr5GBPjW1YPG79hNjrz7//+77ne7lvf+lYG4sZHOl261lhcccUVCbhbf/31c30kJhbbN7U14zHS/InVwlPbaA//fop+0SV6Zu75rp/m+JHsPBtf97z99CGOnbIkUPSFj6nigrEwQYC7AY6ziWxALDJ4/vnnc73TCy+8kFedMhBVw2AADZY0qNWoUpvPPfdcfrfiUcE8QOV3jh1W08fiMAuAATrVbbmnO++8Mx111FFp7733zsX7N998c3KP00IzDoCV8bVq2DgZv+q4DkMO+mFsADrvxgvo9PnFF1/M7OoKK6yQ2dXPf/7zUyVzR+bmjxXd5g8dNH/o6EsvvZTBrPlDLtFCAnUkYF5hyS1KYv842n71yfF+py65aufpq2C57DrguGHbkToyid8MXgL0hd7xMcWuwQeCeHrI7nXDBAHuBjQ2hG1QDIhVitKX6tTuuOOOPEAcsUHhgDEsAAIn9OSTT6Z77703AUlSoFah+nzXXXfl/zEAju8EhwO6jcmnZWgYnMLYYfJuv/32dOGFF2ZgZ/XslVdemf7xH/8xK+LkH7b8QT8K2CTfkRS75cv+zemML5ALPDz88MPp1ltvzYtOnnnmmSyn8TbMZARoGg8rnN///ven3XffPX3ta19LP/3pT7MO/c1NtfQF2RiXMj6DclRk7DoANqcIXEtF33PPPXkszB1zyGKg++67L7OaGEvHD6pPLYkwTjMBJFBsDT3mRNny733ve+mRRx7JjDib7X+9NOdis81JDloW5O67787lFMXG8w2+57gdR7fH245U701fzG1zpwSQE6l/1b5O6Z/Jmb7w9fSFzn3nO9/J+sKmfeMb38j6w97RS37ZmFTHI8DdgLQAaMO2cSqcq4UHituBPIDAYGAZOCQOGHjzP1tWWNV41lln5S1HbGNx9NFH59+ed9552VH95Cc/yc5smACvADtpvm9/+9sZ1LkfKzO32267dNppp+VaL+AT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SCAkEBIICYQEQgItSCDAXQtCLKewqOK6665LSy65ZJp++ukzgxfgrkgn3kMCIYGQQEggJBASGIYEAty1KGUPs7didr311svboSywwAJJWjaYuxaFHKcKCYQEQgIhgZBASGBUCQS4G1U8/f3zlVdeSd/+9rfTFltskVOzCy+8cF5gEeCuPznWPdrCFtvSeGKIjaV9Vg8pbd6k+b29DD1D+A9/+EN+f/3115PrNT13k37Fb0MCIYGJIwE24rXXXss2gp3wTHGPpnzjjTcmTiejJxNWAvwJv/LHP/4x65F35V51fUyAuxaH2nYod955Z9p+++3ToosumhZZZJGpHtxRPACKEgJTDNkwQU+5NkD3u9/9Lr3wwgvpRz/6UX63grkAvLrD7L5MspdeeikvjHnkkUfy1jbGmjGvO/Hq9id+FxIICUwMCbA97AsAx/aoufYYykcffTSxE48//nh66qmn0osvvpiB3kQOCNmx8poY0p36e0He9OdPf/pTevXVV/NeubZN++EPf5hf9Ilfo2d1WoC7OlIb4Tcc/t1335122WWX9J73vCcDPFujTM3MXTFwABAFFblizYYF8IBJjJqngDz88MPp61//errssssyyGZUS/QzwpCN+bVze/rId77znXTppZfm5wffdtttGUA6t/uMFhIICUxbEiiOGUP3k5/8JNuba665Jn3hC19IF1xwQTrvvPPSueeemy688MJ0ww03ZLCnbKeJsx6UhN0LOyaQbcIUDap/U+N5yZys+Uz+5bvf/W666aab0hVXXJEuuuii/H777ben3//+97V9TIC7FjUHuLvrrrvSTjvtlJZYYokM8M4444ypdiuUAuykH5599tm8z589/X79618PzIiVSSEKxsxZxCJaZkBPOumktNtuu6Utt9wynXnmmRlUM76io36b6wCODLdzH3bYYWnrrbdOm222WTr99NPTfffdlyeeCRotJBASmLYkYN5zvE888UT68pe/nA488MC0xx57pL322it//vjHP57//vCHP5z23HPPbJsE/jIL4wnw2Gx2TQAuEHcPQCc76p0tj4D1/+oyX0Bu3r2atOJXsL3kjeX96le/muCET33qU2mfffbJr6OOOipdfvnl6Ve/+lXttH6AuyYj1fFbNXd33HFH8kxZK2aXXXbZ9NnPfjY9/fTTHUdOHX8ycJSUwRJ1nH322VlR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l9QdhoojxSSxfWxcXUBXlYHrsMnAFDDk/K4DMDV5OYdgnL3Wf/3tFWSVe9efcg7g0Dm6BebkwH8Afux98Q3V+6z7mVwAPPJvIo/O3/J7+tkrm9mt/8ZNdst99zpu5Mn3kudY5UlkTQdlzVzDWHohVEpA0a1fbX0X4K4tSQ7pPCautKhVPcCZl88U1f+6Nd+bwBTNZCjHMxadv/G378s1HNsJALtdI74LCYQEQgITSQKca7F77CRww/6xbd1sX92+V21mscmu1fTlXPrLbvfbX/fuPss5Rrtn/ec/2HqvcmxdeVR/p9/6X+TfVCbl986nn93AavX6o3123/TDPffav17kWb2m/hXZGssynqP56+rvm3wOcNdEevHbkEBIICQQEggJhARCAhNMAgHuJtiARHdCAiGBkEBIICQQEggJNJFAgLsm0ovfhgRCAiGBkEBIICQQEphgEghwN8EGJLoTEggJhARCAiGBkEBIoIkEAtw1kV78NiQQEggJhARCAiGBkMAEk0CAuwk2INGdkEBIICQQEggJhARCAk0kEOCuifTityGBkEBIICQQEggJhAQmmAQC3E2wAYnuhARCAiGBkEBIICQQEmgigQB3TaQXvw0JhARCAiGBkEBIICQwwSQQ4G6CDUh0JyQQEggJhARCAiGBkEATCQS4ayK9+G1IICQQEggJhARCAiGBCSaBAHcTbECiOyGBkEBIICQQEggJhASaSCDAXRPpxW9DAiGBkEBIICQQEggJTDAJ/D92ZwunleAlLgAAAABJRU5ErkJggg=="
}
},
"cell_type": "markdown",
"id": "9b2b18f1",
"metadata": {},
"source": [
"2.改错题,程序实现的功能是按照下面的分段函数,对输入的整数x,输出对应的y值。对于超出范围的整数x,输出“ERROR”。\n",
"\n",
"![image-2.png](attachment:image-2.png)\n",
"下面的程序有三处错误,请找出并修改,试程序能正常运行。 \n",
"测试用例: \n",
"输入:12 输出:ERROR \n",
"输入: 6 输出:36 \n",
"输入:-1 输出:5 \n",
"输入: 5 输出:19 "
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9798710d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"12\n",
"ERROR\n"
]
}
],
"source": [
"x = int(input()) #1.\n",
"if x > 10 or x < -10:\n",
" print(\"ERROR\")\n",
"else:\n",
" if x < 0:\n",
" y = 2 * x * x * x + 4 * x * x + 3\n",
" elif x < 6:\n",
" y = x + 14\n",
" else : #2\n",
" y = 6 * x \n",
" print(y) #3"
]
},
{
"cell_type": "markdown",
"id": "41287cfc",
"metadata": {},
"source": [
"## 实践5 小试身手\n",
"1.使用while语句编写程序,输入一个小于等于12的整数n,逐个输出字符串 '人生苦短我用python' 中前n个字符。 \n",
"例如 \n",
"输入:4 输出:人生苦短 \n",
"提示: \n",
"(1)s[i]表示s中第i+1个字符; \n",
"(2)print(...,end=\"\")可以不换行。 "
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1cf553c3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4\n",
"人生苦短"
]
}
],
"source": [
"n=int(input())\n",
"s = '人生苦短我用python'\n",
"i=0\n",
"while( i<n ):\n",
" print(s[i],end=\"\")\n",
" i=i+1"
]
},
{
"cell_type": "markdown",
"id": "fbebc9c1",
"metadata": {},
"source": [
"2.使用for语句编写程序,输入一个小于等于12的整数n,逐个输出字符串 '人生苦短我用python' 中前n个字符。 \n",
"例如 \n",
"输入:4 输出:人生苦短 \n",
"提示: \n",
"(1)s[0:n]表示截取s中前n个字符; \n",
"(2)print(...,end=\"\")可以不换行。 "
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9f56dba0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4\n",
"人生苦短"
]
}
],
"source": [
"n=int(input())\n",
"s = '人生苦短我用python'\n",
"for ch in s[:n]:\n",
" print(ch,end=\"\")"
]
},
{
"cell_type": "markdown",
"id": "c48066c9",
"metadata": {},
"source": [
"## 实践6 小试身手"
]
},
{
"cell_type": "markdown",
"id": "14253686",
"metadata": {},
"source": [
"编写程序以完成如下两个表达式的计算 \n",
"a/(a-b-1) \n",
"a**b \n",
"要求:a、b两变量中的数,由用户输入;它们可以是浮点数;捕捉用户的输入错误,除数不为零的错误,程序结束输出“结束”提示。 "
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9c0d6de2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a:10\n",
"b:0\n",
"1.1111111111111112\n",
"1.0\n",
"结束\n"
]
}
],
"source": [
"try:\n",
" a=float(input('a:'))\n",
" b=float(input('b:'))\n",
" print(f\"{a/(a-b-1)}\")\n",
" print(f\"{a**b}\")\n",
"except ZeroDivisionError:\n",
" print('小学没读好?除数能为0吗?')\n",
"except ValueError :\n",
" print('请输入数值')\n",
"finally:\n",
" print(\"结束\") "
]
},
{
"cell_type": "markdown",
"id": "d4d73557",
"metadata": {},
"source": [
"## 实践7 "
]
},
{
"cell_type": "markdown",
"id": "38eb4369",
"metadata": {},
"source": [
"### 试一试"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f6f2c8fa",
"metadata": {},
"outputs": [],
"source": [
"#随机生成100内的10个整数\n",
"random.sample(range(1,101),10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "369423a8",
"metadata": {},
"outputs": [],
"source": [
"#随机生成0到100内的1个奇数\n",
"random.randrange(1,100,2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b0803ac4",
"metadata": {},
"outputs": [],
"source": [
"#从字符串'abcdefghijklmnopqrstuvwxyz'中随机抽取5个字符\n",
"random.sample('abcdefghijklmnopqrstuvwxyz',5)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f5ccb353",
"metadata": {},
"outputs": [],
"source": [
"#随机选取列表['周畅','吴用恭','郑皓侃','王边丞']中的一个姓名\n",
"random.choice(['周畅','吴用恭','郑皓侃','王边丞'])"
]
},
{
"cell_type": "markdown",
"id": "79a97bbf",
"metadata": {},
"source": [
"### 小试身手\n",
"1.编写程序:输入一个正整数 n, 计算并输出数列1、-1/2、2/3、-3/5、4/8、-5/12...的前n项和。 要求以浮点数形式输出数列前n项的和。 \n",
"测试用例如下: \n",
"输入:2,输出:0.5 \n",
"输入:10,输出:0.7284179117871402\n",
"输入:1,输出:1.0 "
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "4b89315b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n",
"0.7284179117871402\n"
]
}
],
"source": [
"n = int(input())\n",
"a,b = 1,2\n",
"flag = -1\n",
"sum = 1.0\n",
"for i in range(1,n):\n",
" sum = sum + flag * a / b\n",
" a,b = i + 1 ,a + b\n",
" flag = -flag\n",
"print(sum)"
]
},
{
"cell_type": "markdown",
"id": "50055d96",
"metadata": {},
"source": [
"### 小试身手 \n",
"2.输入一组任意浮点数,请分别统计正数和负数的平均值。输入“quit”结束。"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "43755a16",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"请输入一个浮点数:-2.56\n",
"请输入一个浮点数:-68.93\n",
"请输入一个浮点数:176.5\n",
"请输入一个浮点数:0\n",
"请输入一个浮点数:-3.22\n",
"请输入一个浮点数:0\n",
"请输入一个浮点数:35.88\n",
"请输入一个浮点数:quit\n",
"2个正数的平均值为:106.19 \n",
"3个负数的平均值为:-24.90 \n"
]
}
],
"source": [
"s1,s2=0,0\n",
"n1,n2=0,0\n",
"x=input(\"请输入一个浮点数:\")\n",
"while x!=\"quit\":\n",
" x=float(x)\n",
" if x >0:\n",
" s1=s1+x\n",
" n1=n1+1\n",
" elif x<0:\n",
" s2=s2+x\n",
" n2=n2+1\n",
" x=input(\"请输入一个浮点数:\")\n",
"print(\"{}个正数的平均值为:{:.2f} \".format(n1,s1/n1))\n",
"print(\"{}个负数的平均值为:{:.2f} \".format(n2,s2/n2))\n"
]
},
{
"cell_type": "markdown",
"id": "3822336a",
"metadata": {},
"source": [
"3.使用random模块函数,随机生成100个值为【-1000,1000】之间的整数,分别统计其中能被3或7整除的数的个数。"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "28fc250e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"511\t720\t-717\t-468\t780\t-198\t\n",
"能被3或7整除的数有6个,均值为104.66666666666667\n"
]
}
],
"source": [
"from random import randint \n",
"n = 0\n",
"s = 0\n",
"for i in range(20):\n",
" x = randint(-1000,1000)\n",
" if x%3 == 0 or x%7 == 0:\n",
" print(x,end=\"\\t\")\n",
" s += x\n",
" n = n+1\n",
"print(f\"\\n能被3或7整除的数有{n}个,均值为{s/n}\")\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "f966e03c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-63"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "85940ae3",
"metadata": {},
"outputs": [],
"source": [
"4.:输入一组数,寻找最大值,需要同时输出,最大值的第几个数,如何修改程序?"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "117cd534",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"请输入一个浮点数:9.34\n",
"请输入一个浮点数:-0.25\n",
"请输入一个浮点数:190.382\n",
"请输入一个浮点数:88.27\n",
"请输入一个浮点数:-82.99\n",
"请输入一个浮点数:over\n",
"最大值是第3个数190.382\n"
]
}
],
"source": [
"maxnum=input(\"请输入一个浮点数:\")\n",
"maxindex=1\n",
"n=1\n",
"if maxnum != \"over\":\n",
" maxnum=float(maxnum)\n",
" \n",
" x=input(\"请输入一个浮点数:\")\n",
" n=2\n",
" while x!=\"over\":\n",
" x=float(x)\n",
" if x > maxnum:\n",
" maxnum=x\n",
" maxindex=n\n",
" \n",
" x=input(\"请输入一个浮点数:\")\n",
" n=n+1\n",
"\n",
" print(f\"最大值是第{maxindex}个数{maxnum}\")\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "72db5e68",
"metadata": {},
"outputs": [],
"source": [
"打出所有的水仙花数(水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "018fad85",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"153\t370\t371\t407\t"
]
}
],
"source": [
"for a in range(1,10):\n",
" for b in range(0,10):\n",
" for c in range(0,10):\n",
" num=a*100+b*10+c\n",
" if a**3+b**3+c**3 == num:\n",
" print(num,end=\"\\t\")\n",
" "
]
},
{
"cell_type": "markdown",
"id": "b4f0c3fa",
"metadata": {},
"source": [
"## 实践8"
]
},
{
"cell_type": "markdown",
"id": "93362a6e",
"metadata": {},
"source": [
"### 试一试\n",
"\n",
"利用s1、s2和字符串操作,写出能产生下列结果的表达式。\n",
"s1='programming'\n",
"s2='language'\n",
"(1)\"program\" \n",
"(2)\"prolan\" \t\n",
"(3)\"amamam\"\n",
"(4)\" programming language \"\n",
"(5)\"progr@mming l@ngu@ge\"\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "0c326a7d",
"metadata": {},
"outputs": [],
"source": [
"s1='programming'\n",
"s2='language'"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "57e9ecb1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'program'"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#(1)\"program\"\n",
"s1[:7]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "f3665008",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'prolan'"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#(2)\"prolan\" \n",
"s1[:3]+s2[:3]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "e32b93e1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'amamam'"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#(3)\"amamam\"\n",
"s1[5:7]*3"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "67c7c983",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'progr@mming l@ngu@ge'"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#(4)\"progr@mming l@ngu@ge\"\n",
"s1.replace(\"a\",\"@\")+\" \"+s2.replace(\"a\",\"@\")"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "7c06cdb5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Programming Language'"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#(5)'Programming Language'\n",
"s1.capitalize()+\" \"+s2.capitalize()"
]
},
{
"cell_type": "markdown",
"id": "111debcc",
"metadata": {},
"source": [
"### 试一试:\n",
"寻找一个源字符串s中的子串sub的所有位置。"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "82a651ae",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"s=do not,for one repuls,forgo the purpose that you resolved to effort\n",
"sub=o\n",
"1\t4\t8\t11\t23\t26\t36\t46\t52\t59\t64\tover\n"
]
}
],
"source": [
"#方法一 经典while循环\n",
"s = input(\"s=\")\n",
"sub = input(\"sub=\")\n",
"start=0\n",
"index=s.find(sub,start)\n",
"while index != -1:\n",
" print(index,end=\"\\t\")\n",
" start = index+1\n",
" index=s.find(sub,start)\n",
"print(\"over\")\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "728ce498",
"metadata": {},
"outputs": [],
"source": [
"#方法二 while True 算法模式\n",
"s = input(\"s=\")\n",
"sub = input(\"sub=\")\n",
"start=0\n",
"\n",
"while True:\n",
" index=s.find(sub,start)\n",
" if index == -1:\n",
" break\n",
" print(index,end=\"\\t\")\n",
" start = index+1\n",
" \n",
"print(\"over\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e35a0a52",
"metadata": {},
"outputs": [],
"source": [
"方法三 异常处理算法模式\n",
"s = input(\"s=\")\n",
"sub = input(\"sub=\")\n",
"start = 0\n",
"while True:\n",
" try:\n",
" index=s.index(sub,start)\n",
" print(index,end=\"\\t\")\n",
" start=index+1\n",
" except ValueError:\n",
" print('over')\n",
" break\n"
]
},
{
"cell_type": "markdown",
"id": "42ccd924",
"metadata": {},
"source": [
"### 小试身手 \n"
]
},
{
"cell_type": "markdown",
"id": "f89f066b",
"metadata": {},
"source": [
"(1)编写程序 实现二进制IP地址转为十进制IP地址。 \n",
"一个IP地址是由四个字节(每个字节8个位)的二进制码组成。输入一个合法的二进制表示的IP地址,请将其转换为十进制格式表示的IP地址输出(不考虑异常输入数据)。 \n",
"运行示例: \n",
"input:11001100100101000001010101110010 \n",
"output:204.148.21.114 "
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "a284705c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"11001100100101000001010101110010\n",
"204.148.21.114\n"
]
}
],
"source": [
"ip2=input()\n",
"ip10=\"\"\n",
"start=0\n",
"for i in range(4):\n",
" x=int(ip2[start:start+8],2)\n",
" ip10+=str(x)+\".\"\n",
" start+=8\n",
"print(ip10[:-1])\n"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "5ec84a36",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"11001100100101000001010101110010\n",
"204.148.21.114\n"
]
}
],
"source": [
"ip2=input()\n",
"print(str(int(ip2[0:8],2))+\".\"+str(int(ip2[8:16],2))+\".\"+str(int(ip2[16:24],2))+\".\"+str(int(ip2[24:],2)))\n"
]
},
{
"cell_type": "markdown",
"id": "be7b2b8c",
"metadata": {},
"source": [
"(2)编写程序 随机产生50个-1000~1000之间的整数,输出其中逆序数大于原数据的整数并统计个数。 "
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "d7ce4f17",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"687 -564 -662 -873 519 367 -625 375 436 -981 -742 -231 -671 -382 -32 -30 -958 -920 -520 -97 -350 69 29 \n",
"共23个数\n"
]
}
],
"source": [
"from random import randint\n",
"n=0\n",
"for i in range(50):\n",
" x = randint(-1000,1000)\n",
" if x>0:\n",
" y = int(str(x)[::-1])\n",
" else:\n",
" y = int(str(x)[:0:-1])*-1\n",
" if y>x:\n",
" print(x,end=\" \")\n",
" n=n+1\n",
"print(f\"\\n共{n}个数\")\n"
]
},
{
"cell_type": "markdown",
"id": "531bc39c",
"metadata": {},
"source": [
"(3)编写程序 实现电文加密 \n",
"有一行电文,已按如下规律译成密码: \n",
"A-->Z a-->z \n",
"B-->Y b-->y \n",
"C-->X c-->x \n",
" ...... ...... \n",
"即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。 \n",
"\n",
"运行示例 \n",
"input:ABC123abc \n",
"output:ZYX123zyx \n",
"\n",
"\n",
"input:Life is like an ice cream, enjoy it before it melts. \n",
"output:Oruv rh orpv zm rxv xivzn, vmqlb rg yvuliv rg nvogh. \n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "8e3012c9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Life is like an ice cream, enjoy it before it melts.\n",
"Oruv rh orpv zm rxv xivzn, vmqlb rg yvuliv rg nvogh.\n"
]
}
],
"source": [
"plaintext = input()\n",
"ciphertext = ''\n",
"for ch in plaintext:\n",
" if ch.isupper():\n",
" ciphertext += chr(ord(\"A\")+26-(ord(ch)-ord(\"A\"))-1)\n",
" elif ch.islower():\n",
" ciphertext += chr(ord(\"a\")+26-(ord(ch)-ord(\"a\"))-1)\n",
" else:\n",
" ciphertext = ciphertext + ch\n",
"print(ciphertext)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "345f93b6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Life is like an ice cream, enjoy it before it melts.\n",
"Oruv rh orpv zm rxv xivzn, vmqlb rg yvuliv rg nvogh.\n"
]
}
],
"source": [
"import string \n",
"\n",
"plaintext = input()\n",
"ciphertext = ''\n",
"lower = string.ascii_lowercase\n",
"upper = string.ascii_uppercase \n",
"for ch in plaintext:\n",
" if ch in low:\n",
" ciphertext += low[26-low.find(ch)-1]\n",
" elif ch in upper:\n",
" ciphertext += upper[26-upper.find(ch)-1]\n",
" else:\n",
" ciphertext = ciphertext + ch\n",
"print(ciphertext) \n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8c421a43",
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1e224ed4",
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}