oystk 发表于 2020-9-16 09:58

python学习笔记

本帖最后由 oystk 于 2020-10-29 09:27 编辑

python3.8.5下载地址:
64位:https://www.python.org/ftp/python/3.8.5/python-3.8.5-amd64.exe
32位:https://www.python.org/ftp/python/3.8.5/python-3.8.5.exe
安装:
下载后双击安装,注意区分32位和64位系统
注意:安装时“Add Python 3.8.5 to PATH”前面打勾,其他建议默认安装

2020最新零基础Python
链接:https://pan.baidu.com/s/1hqsKyV1ztnkrw9U2xKOhdg
提取码:20w2
尚学堂第一季
链接:https://pan.baidu.com/s/1i_d9oolHdAqz6WaK_XuVFQ
提取码:20w2
尚学堂第二季
链接:https://cloud.189.cn/t/NbEjArraqa2a (访问码:h44k)
尚学堂第三季
链接:https://pan.baidu.com/s/18nYAc68Fx325NCufkSwFjA
提取码:20w2
尚学堂第四季
链接:https://pan.baidu.com/s/1UJyMi7mxtmG59TyLXvEgSg
提取码:20w2

01变量:
变量是计算机语言中能储存计算结果或能表示值的抽象概念。
变量的命名规范:
1.由字母、数字、下划线组成
2.不能以数字开头
3.不能使用Python关键字
4.区分英文字母大小写
5.尽量让变量的名字容易记忆
函数和保留字的区别:
1.保留字有35个:and、as、assert、async、await、break、class、continue、def、del、elif、else、except、finally、for、from、False、global、if、import、in、is、lambda、nonlocal、not、None、or、pass、raise、return、try、True、while、with、yield
2.内置函数见
www.runoob.com/python/python-built-in-functions.html
内置函数后面要加(),例 print()

02数值:
python中数值型分为整数型(整型)(int)和小数型(浮点型)(float)
数值型数据支持算术运算、比较运算和位运算
1。算术运算:加+、减-、乘*、除/、整除//、求余%、幂次方**
2。比较运算:大于>、小于<、大于等于>=、小于等于、等于==、不等于!=
3。位运算:

03字符串:
字符串(str)是连续的字符序列。通常使用单引号、双引号或三引号括起来'''、"""。其中单引号和双引号中的字符串必须在一行上,三引号字符串可以分布在连续的多行上。
常用转义符:\n 换行符; \t 制表符
切片[]
字符串的单个元素都是可以提取的。
[] 通过索引提取字符串中的字符。
用法:[(起始位置):(结束位置):(步长)]
例:
s = "人生苦短,我用python"
对应的位置值:
从左往右:
人生苦短,我用pyt   h   o   n
0    1   2   3   4    5   6   78910   11    12
从右往左:
人生    苦    短      ,我用   p    y   t   h   o   n
-13-12-11-10   -9-8-7-6-5-4   -3   -2    -1
#提取第3到第8字符串
       命令print(s)      #包含起始位置,不包含结束位置,步长默认为1,可省略
运行结果短,我用py
#提取第3到最后字符串
       命令print(s)      #包含起始位置,到结尾可省略,步长默认为1,可省略
运行结果短,我用python
#提取从开头到第8字符串
       命令print(s[:9])      #从开头起可省略,不包含结束位置,步长默认为1,可省略
运行结果人生苦短,我用py
#提取全部字符
       命令print(s[:])      #从开头起可省略,到结尾可省略,步长默认为1,可省略
运行结果人生苦短,我用python
#步长如果是负数,表示从右向左提取,此时起始位置在右边,结束位置在左边
#从右向左提取
       命令print(s[-3:-7:-1])      #步长-1,从右向左提取
运行结果htyp
或    命令print(s)      #步长-1,从右向左提取
运行结果htyp
#步长为2,数两个提取1个,即间隔提取
#提取所有单数字符
       命令print(s[::2])   #自己解释
运行结果人苦,用yhn
#提取所有双数字符
       命令print(s)#自己解释
运行结果生短我pto
#把字符串倒着输出(倒背如流)
       命令print(s[::-1])#自己解释
运行结果nohtyp用我,短苦生人


04python格式化输出之format用法
format用法
相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’
使用方法由两种:b.format(a)和format(a,b)。
1、基本用法
  (1)不带编号,即“{}”
  (2)带数字编号,可调换顺序,即“{1}”、“{2}”
  (3)带关键字,即“{a}”、“{tom}”
例:
>>> print('{} {}'.format('hello','world'))# 不带字段
hello world
>>> print('{0} {1}'.format('hello','world'))# 带数字编号
hello world
>>> print('{0} {1} {0}'.format('hello','world'))# 打乱顺序
hello world hello
>>> print('{1} {1} {0}'.format('hello','world'))
world world hello
>>> print('{a} {tom} {a}'.format(tom='hello',a='world'))# 带关键字
world hello world
2、进阶用法
以后再讲
3、多个格式化
以后再讲
通过位置匹配参数
例:
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{2}, {1}, {0}'.format(*'abc')# 可打乱顺序
'c, b, a'
>>> '{0}{1}{0}'.format('abra', 'cad')# 可重复
'abracadabra'
通过名字匹配参数
例:
>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
'Coordinates: 37.24N, -115.81W'
>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)
'Coordinates: 37.24N, -115.81W'
以下还有很多种用法,暂不要求掌握

05数据类型转换:
int(a)       #把变量a转换成整数型
float(b)   #把变量b转换成小数型
str(c)       #把变量c转换成字符串型
type(d)    #查看变量d的数据类型
练习:
a = 12
b = 34
c = 56
d = 420104200405064321
#使用以上变量,编写合适代码,输出下列结果
结果:46
代码:
结果:1234    #数值型
代码:
结果:3456    #文本型
代码:
结果:我的生日是2004年5月16日   
代码:
#代码不变,把身份证号改成 420104200412134321
思考:
"A">"a"
运行结果是什么?why?
不在电脑上运行,尝试写出以下结果:
"1" > "0"    运行结果:
"1" > "A"    运行结果:
"1" > "a"    运行结果:
"" > " "    (两个空格大于一个空格)运行结果:
"1" > " "    运行结果:
"A" > " "    运行结果:
"a" > " "    运行结果:

小测验:
一、请将下列数学表达式用Python程序写出来,并计算结果:

x = 5
y = 7
a = 9
b = 11
m = 2
pai = 3.14#π




二、编程题

1.输入一个正整数,判断是奇数还是偶数,并输出“奇数”或“偶数”
2.输入任意数据,判断数据类型,并输出对应的中文,如整型、小数型、字符串、布尔型
while True :
    try:
      x = eval(input(":"))
      if str(type(x)) == "<class 'int'>" :
            print("整数型")
      if str(type(x)) == "<class 'float'>" :
            print("小数型")
      if str(type(x)) == "<class 'bool'>" :
            print("布尔型")
    except:
            print("字符串")

3.输入一个身份证号码,输出出生日期,格式:2005年5月5日
4.输入一段文字,倒着输出
5.输入一个数值,倒着输出
6.输入一段文字,如果有“汉武”这个词,自动更正为“武汉”后把这段文字输出

三、思考题

1.输入一个正整数,输出它的所有因子。如:输入8,因子有1,2,4,8
2.有一种数字,它的所有因子之和刚好等于它本身。如6的因子有1、2、3,而1+2+3=6。请找出1000以内满足此条件的所有数。
for x in range(1,1000):
    #x = int(input(":"))
    s = 0
    for i in range(1,x):
      if x % i == 0 :
            #print(i)
            s = s + i
    if x == s :
      print(x)

06程序流程图:

起止框:表示程序逻辑的开始或结束
判断框:表示一个判断条件
处理框:表示处理过程
输入输出框:表示数据输入或结果输出
注释框:左边是虚线,右边是半框,不想画了
流向线:表示程序执行路径
连接点:表示多个流程图的连接方式

以前穷,只能纸上作业再实操。现在建议先学会简单程序的编写,再划流程图,最后手动程序运行过程。
先了解一下,if、for、while学完后再狂练这个。

例:

扩展:异常处理
try :……
except :
    ……


1.单分支结构:if
使用方式:
If <条件>:
<语句块1>
<语句块2>
其中:if后加: ,<语句块>缩进四格是语法的一部分。语句块可一条或多条,但不能没有,如果没有需要执行的语句,可加pass
<语句块>是if条件满足后执行的一个或多个语句序列,缩进表示<语句块>与if的包含关系。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png<条件>必须产生一个逻辑结果True或False。当条件为True时执行<语句块>,否则跳过<语句块>。
流程图:

例:
#判断输入的数字的奇偶
s = int(input(“请输入一个整数:”))
ifs% 2 == 0 :print(s,“是偶数”)
ifs% 2 != 0 :print(s,“是奇数”)

<条件>可以是多个条件,多个条件间采用and或or进行组合。
and:表示两个条件都满足时,<条件>的结果是True,只满足一个条件或两个条件都不满足时,<条件>的结果是False
or:表示两个条件只要满足一个,<条件>的结果是True,只有两个条件都不满足时,<条件>的结果才是False
例:
#先输入6,再输入8,9,看一下运行结果。没有结果的请自己思考。
x = int(input(“请输入一个整数:”))
ifx% 2 == 0andx % 3 == 0 :print(x,”即能被2整除,又能被3整除”)
ifx% 2 == 0orx % 3 == 0 :print(x,”要么能被2整除,或者能被3整除”)

思考:三个或三个以上and和or混用,输出什么结果?加括号再混用呢?
例:上一题<条件>改为以下两种,有何区别?
x % 2 == 0 orx % 3 == 0andx% 4 == 0orx % 5 == 0
(x % 2 == 0 orx % 3 == 0)and(x% 4 == 0orx % 5 == 0)
程序练习:
#1。输入一个大于2的正整数,判断是不是素数
#2。输入一个大于2的正整数,判断是不是合数
#3。输入两个整数,比较大小
#4。输入身份证号码,判断是否成年(18岁)
#5。输入一段文字,判断里面是否有关键字,如武汉
#6。输入一段文字,判断里面是否有关键字,如武汉和上海
#7。输入一段文字,判断里面是否有关键字,如武汉或上海
#8。输入支付宝余额,判断是否是有钱人
#9。输入身高,判断身高是否正常
#10。输入相貌,判断是否帅或漂亮
#11。输入支付宝余额、身高、相貌,三个条件都满足,输出“地球人”
#12。输入支付宝余额、身高、相貌,三个条件都不满足,输出“土星人”
#13。输入支付宝余额、身高、相貌,支付宝余额满足条件,另两个不满足,输出“火星人”
#14。输入支付宝余额、身高、相貌,身高满足条件,输出“木星人”
#15。输入支付宝余额、向高、相貌,相貌满足条件,输出“外星人”
#16。输入支付宝余额、向高、相貌,三个条件只满足其中一条,输出“奇怪的人”

疯狂练习,巩固提高

0922练习:
一、计算题(笔试题,禁止电脑上操作)
1+2 =
“1”+“2”=
int(1)+float(2) =
True + False =
"True"+"False" =
int(1) + int(2) =
str(int(1)) + str(int(2)) =
"中国"+“武汉”=
1*2 =
“1”*2=
二、切片题
a = "人有悲欢离合,月有阴晴圆缺,此事古难全。但愿人长久,千里共婵娟。"
b = 420104200506074321
输出:人有悲欢离合,月有阴晴圆缺
语句:
输出:人悲离,有晴缺此古全但人久千共娟
语句:
输出:。娟婵共里千,久长人愿但。全难古事此,缺圆晴阴有月,合离欢悲有人
语句:
输出:。婵里,长愿。难事,圆阴月合欢有
语句:
输出:20050607
语句:
输出:小明15岁
语句:
三、if分支
1。输入成绩,判断是否及格
2。输入三条边长,判断是否能构成三角形
3。输入三条连长,如果能构成三角形,判断是构成钝角、直角还是锐角三角形
4。

0923练习:
1。输入一个正整数,如果是奇数,则输出:这个数的立方是**,如果是偶数,则输出:这个数的平方是**
2。输入四个正整数,如果前两个数之和等于后两个数之和,则输出:好巧啊。否则输出:我们不熟
3。输入两个正整数,把较大的数赋给a,较小的数赋给b,最后输出:a=**,b=**
4。输入三个正整数,最大的数赋给a,最小的数赋给c,中间的数赋给b,最后输出:a=**,b=**,c=**
5。输入月份,输出对应的天数,不考虑闰年。如:输入2,输出:2月有28天
6。输入年份,判断该年是平年还是闰年。如:输入2020,输出:2020年是闰年
7。输入两个正整数,输出两个数之差的绝对值。
8。输入一个正整数,判断这个数是不是3的倍数,是则输出YES,不是则输出NO
9。输入一个三位数,判断该数是不是水仙花数,是则输出YES,不是则输出NO。说明:水仙花数就是一个数字的每个数字的立方和等于这个数。如:153。。1**3+5**3+3**3=153
10。把百分制转换成ABCDE,如果输入90以上,输出A;输入80-89,输出B;输入70-79,输出C;输入60-69,输出D;输入60以下,输出E
11。判断输入的数值是不是5位数,是则输出YES,不是则输出NO
12。输入一个数,判断它的百位数是不是3,是则输出YES,不是则输出NO
13。输入三个数,从小到大输出
14。输入语文、数学、英语三门成绩,三门都及格,输出“优秀”;有一门不及格,输出“良好”;有两门不及格,输出“合格”;三门都不及格,输出“留级”
15。

0924练习:
1。输入四个整数a,b,c,d,按照从大到小的方式输出
2。输入一个小于1000的整数,判断它是一位数、两位数还是三位数
3。输入学生姓名**,输入考试成绩,如果是100分,输出:恭喜**,满分通过!如果大于等于80分小于100分,输出:**,你很优秀。如果是大于等于60分小于80分,输出 :**成绩良好。如果大于等于50小于60,输出:**就差一点点。如果小于50,输出:**你睡着了吗?
4。输入整数a和b,如果a**2+b**2大于100,则输出a**2+b**2,否则输出a+b
5。输入一个数值,判断它是整数还是小数
6。一元二次方程a*x**2+b*x+c=0。输入a,b,c三个数字,判断该方程是有两个实数根、一个实数根还是无实根
7。标准体重:男士体重=身高-100,女士体重=身高-110。
xb = str(input("请输入性别(男或女):"))
sg = int(input("请输入身高(厘米):"))
tz = int(input("请输入体重(公斤):"))
。。。
判断体重是超重、标准、偏瘦
8。商品名称:1。汉堡;2。薯条;3。鸡块;4。鸡腿;5。鸡米花
请输入你选择的商品项目数字,输出对应的商品
如:输入1234,输出:汉堡、薯条、鸡块、鸡腿
如:输入135,输出:汉堡、鸡块、鸡米花
如:输入11,输出:汉堡、汉堡
这题有点难哟
9。输入一个整数,位数不限,如果是奇数位,输出正中间的一位数,如果是偶数位,输出中间的两位数
如:输入123,输出2
如:输入4564,输出56
这题同样有点难哟
10。你家的狗5岁了,5岁的狗相当于多大年龄的人呢?
其实非常简单,狗的前两年每一年相当于人类的10.5岁,然后每增加一年就增加四岁。那么5岁的狗相等于人类的年龄就应该是10.5+10.5+4+4+4 = 33岁
编写一个程序,获取用户输入的狗的年龄,然后通过程序显示其相当于人类的年龄。
11。输入你的考试成绩共七门功课,其中语文、数学、英语三门的满分是150分,政治、历史、地理满分是100分,体育满分是30分。及格分按各门功课满分的60%计算。
如果你所有功课全及格,奖励一辆宝马;
如果你有任意两门不及格,奖励一匹马;
如果你有任意四门不及格,奖励一头驴子;
有四门以上不及格,奖励一只呆头鹅
#参考:

yw = eval(input("语文:"))sx = eval(input("数学:"))wy = eval(input("外语:"))zz = eval(input("政治:"))ls = eval(input("历史:"))dl = eval(input("地理:"))ty = eval(input("体育:"))
s = yw//90+sx//90+wy//90+zz//60+ls//60+dl//60+ty//18
ifs == 7 :    print("全部及格,奖励一辆宝马")if7> s >= 5 :    print("奖励一匹马")if5> s >= 3:    print("奖励一头驴子")if3> s >0    print("猪一头")
else :    print("奖励一只呆头鹅")

休息时间结束,我们继续。。。

9月考:略

循环语句
while循环:无限循环,一直循环到不满足条件为止,也称为条件循环。
for循环:指定次数循环,也称为计次循环。
while循环:
语法:
while 条件表达式 :
    循环体
while练习:
1。今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
2。今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
3。使用while循环输入 1 2 3 4 5 6 8 9 10
4。求1 - 100的所有数的和
5。输出 1 - 100内的所有奇数
6。输出 1 - 100内的所有偶数
7。用户登陆(三次机会重试) user = input("请输入账号:")   pass = input("请输入密码:")
8。使用while循环实现输出2-3+4-5+6...+100 的和
9。使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束
10。猜年龄游戏:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
11。猜年龄游戏升级版:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序。如何猜对了,就直接退出。

拓展练习1:(用while)
1。求1+2+3+4+...+1000的值
2。求1*2*3*4*5*...*100的值
3。求1*3*5*7*9*...*99的值
4。求2*4*6*8*10*...*100的值
5。输出斐波切纳数列
6。求斐波切纳数列前100位之和
7。求斐波切纳数列第100位数是多少
8。输出斐波切纳数列小于100的所有数列

拓展练习2:(用while)
1。判断100-200有多少个素数,并输出所有的素数
2。将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
3。求s=a+aa+aaa+aaaa+aa...a的值,其中a是2到9之间的一个数值,例如:a=2, s=2+22; a=3, s=3+33+33; a=5,s=5+55+555+5555+55555

while拓展练习3:
1。一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
找出1000以内的所有完数。
2。100元换零钱,有50元,20元、10元、5元、1元。有多少种换法?
3。从1到500所有自然数中不含数字4的自然数共有多少个?
4。某竞赛中,参赛人数大约在380~450人之间。比赛结果,全体考生的总平均分为76分,男生的平均分为75分,女生的平均分为80.1分,求男女生各有多少人?


for循环用法一:
for变量inrange(起始值,结束值,步长) :
例:foriinrange(1,12,1):
表示:i=1i=2i=3...i=11,这个循环要执行12-1=11次,在执行循环时,变量i的值可以调用也可以不调用
for循环练习:
1。今有物不知其数,三三数之乘二,五五数之乘三,七七数之乘二,问几何?
2。今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
3。使用for循环输入 1 2 3 4 5 6 7 8 9 10
4。求1 - 100的所有数的和
5。输出 1 - 100内的所有奇数
6。输出 1 - 100内的所有偶数
7。用户登陆(三次机会重试) user = input("请输入账号:")   pass = input("请输入密码:")
8。使用for循环实现输出2-3+4-5+6...+100 的和
9。使用for 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束
10。猜年龄游戏:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
11。猜年龄游戏升级版:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序。如何猜对了,就直接退出。
for循环拓展练习:
1.判断101-200之间有多少个素数,并输出所有素数。
2.打印出所有的"水仙花数"。“水仙花数”是指一个三位数,其各位数字立方和等于该数。
3.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
4.输入两个正整数m和n,求其最大公约数和最小公倍数。
5.输出“九九乘法表”
6.输入10个数,从小到大输出
7.求0--7能组成多少个不重复的奇数
8.奶茶15元、可乐3元、矿泉水2元。200元每种至少买一个,有多少种买法?

for循环用法二:遍历字符串
方法1:
a="中华人民共和国"
for i in a :
    print(i)
方法2:
a="中华人民共和国"
for i in range(len(a)):
    print(a)
for循环练习:
a="石室诗士施氏,嗜狮,誓食十狮。施氏时时适市视狮。十时,适十狮适市。是时,适施氏适市。施氏视是十狮,恃矢势,使是十狮逝世。氏拾是十狮尸,适石室。石室湿,氏使侍拭石室。石室拭,施氏始试食是十狮尸。食时,始识是十狮尸,实十石狮尸。试释是事。"
统计该文中共有多少个“狮”字?
for循环用法三:遍历列表、元组、字典
(以后讲)


循环语句练习:
1。循环输出1到100之间所有能被3或能被4整除的数。
2。有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
3。我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.0001m。请问,折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
4。从控制台连续输入数字,当输入的数字为0时不可以再输入。
5。求1+2!+3!+...+10!的和。一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。即n!=1×2×3×...×(n-1)×n。
6。一只公鸡5块钱,一只母鸡3块钱,3只小鸡一块钱,一个农夫用100块钱买100只鸡,有多少种买法
7。编程循环计算图形的面积。图形的类型为(1-圆形 2-长方形 3-正方形 0-退出)。圆形=3.14*半径**2长方形=长*宽正方形=边长**2。
例:
输入“1”
显示“请输入圆的半径”
输出“圆的面积是:”
8。求斐波那契数列前20项之和。第1项为0,第2项为1
9。打印:
*
**
***
****
*****
10。打印:
   *
    * *
   *   *
*   *
*       *
*         *
*       *
*   *
   *   *
    * *
   *
for i in range(-6,7):
    for j in range(-6,7):
      if abs(i) + abs(j) == 6:      
            print('*',end='')
      else:
            print(' ', end='')
    print()

cka890712 发表于 2020-9-16 10:08

前排先占沙发,好东西 必须顶!!

海云帆 发表于 2020-9-16 10:13

前排留名~~~

KatharsisKing 发表于 2020-9-16 10:14

gaoxiangfei 发表于 2020-9-16 10:15

第二季可以分享到迅雷网盘,天翼网盘。现在都免费

hello_pj 发表于 2020-9-16 10:15

也想学习一下

CNLibrary 发表于 2020-9-16 10:16

一直还没时间学习

originalyws 发表于 2020-9-16 10:16

尚学堂第二季
百度云禁止分享

第二季挂啦!

xiaoxs11 发表于 2020-9-16 10:17

感谢大佬分享

渭水之洲 发表于 2020-9-16 10:25

感谢大佬,就是第二季挂了!会不会把北冥神功练成吸星大法?
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: python学习笔记