学习Python语言-代码篇

前言

随着科技时代的飞速发展,Python语言的需求量和普及度越来越广,对初学者十分友好的语言,它的语法清晰易读、
面向对象、可移植性、可扩展性,跨平台的开源编程语言,支持在Windows、Mac和Linux等平台上运行。

一、Python语言是什么?

Python是一门解释型、面向对象、带有动态语义的高级程序设计语言,也称为“解释型语言”或“胶水语言”。

二、编程开发环境

1.集成开发环境:Python 3.8.4

链接:https://pan.baidu.com/s/13a_KnPPTUicm1b2434AvdQ
提取码:dgsh

2.编辑器:Pycharm 2022.1

链接:https://pan.baidu.com/s/1kXE0ur5YK5_NrE02_-BB9Q
提取码:d4mh

二、实战示例学习

1.输出Welcome to the World of ESP

print()函数:用于打印输出
print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
objects:表示输出的对象。输出多个对象时,需要用逗号间隔。
sep:用来间隔多个对象。
end:用来设定以什么结尾。默认值为\n(换行符),可换成其他字符。
file:写入的文件对象。
flush:用于刷新(清除)内部缓冲区/流,两个值(True/False)。

print('Welcome to the World of Python')

2.求最大值

for 迭代变量 in 字符串|列表|元组|字典|集合:
迭代变量:用于存放序列类型变量中读取出来的元素,一般不手动赋值
range()函数:创建一个整数列表,一般用在for循环中。
语法:range(start,stop[,step])
参数说明:
start:计数从start开始(0~n-1)。例如range(n)等价于range(0,n-1)
stop:计数到stop结束。例如:range(0,n)等价于[0,1,…,n]
step:步长,默认为1.例如:range(0,n)等价于range(0,n,1)

List = [33, 11, 66, 99, 55]       #直接定义   列表List
List1 = [0 for i in range(4)]   #间接定义   range():随机函数
Max = List[0]	                #定义变量Max用来存储值,初始值赋值为列表中任意一个值
#print(Max)
for i in List:                  #遍历列表
    if i > Max:                 #比较相邻两个数的大小
        Max = i                 #将i的值赋给MAX
print("这个列表中最大值为:", Max)  #输出MAX值

3.最大公约数 & 最小公倍数

最大公约数

#greatest common divisor
#辗转相除法
List = []
number1 = input("请输入第一个数字\n")
number2 = input("请输入第二个数字\n")
m = max(number1,number2)
n = max(number1,number2)
r = number1%number2
while r != 0:
    m=n
    n=r
    r=m%n
print(number1,"和",number2,"的最大公约数为",n)

4.冒泡排序

# 冒泡排序算法例子
# def函数 定义一个新函数(bubbleSort函数,arr为一个对象)
def bubbleSort(arr):
    # len()函数获取对象的长度
    # 对象可以为(字符串,列表,元组)
    n = len(arr)

    # 遍历所有数组元素
    # range()函数表示生成一个列表对象 从下标0开始

    for i in range(n):

        # Last i elements are already in place
        for j in range(0, n - i - 1):
            # 从小到大排序
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                
# arr数组赋初始值
arr = [22, 11, 88, 66, 55, 44, 77, 99, 44, 33]

bubbleSort(arr)

print("BubbleSort排序后的数组:")
# 依次输出排序后的数组
for i in range(len(arr)):
    print("%d" % arr[i], end=','),
# 去掉最后最后一个逗号
print(arr[-1])

# range()函数补充
# 只有一个参数时:表示下标0到这个参数内的所有整数,不包含参数本身
# 有2个参数时,第一个参数,表示左边界,第2个参数表示右边界,含左不含右
# 有三个参数时,第一个表示左边界,第二个表示右边界,第三个表示步长step,
# 即两个整数之间相差的数,含左不含右

5.斐波拉契数列

判断法:

#CalFibonacci.py
#F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
#迭代法
def CalFibonacci():                      		#def函数 定义一个新函数(CalFibonacci函数)
    number=input("请输入大于1的范围数\n")    	#number为字符串数据类型
    i,j=0,1                              		#赋值 i=0 j=1
    if int(number)<0:                    		#输入的数字小于0,重新输入
        print("请您重新输入数字\n")
    elif    int(number)==1 or int(number)==2: 	#输入的数字为1,2,输出1
            print(i)
    else:
        while i<int(number) and j<int(number): 	#输出F(1)到F(n-1)项的值
            print(i,end=',')            		#依次输入CalFibonacci数列
            i,j=j,i+j                   		#该语句从右至左执行 等价于i=j,j=i+j,i+j
        print(i)                       			#输出F(n)项的值
CalFibonacci()                          		#函数调用

递归法:
① append()函数:
用在列表末尾添加新的对象。
② 语法:
List.append(object)
③ 参数:
List:列表对象名;
object:添加到列表末尾的对象。
④ 返回值:
append()函数无返回值,但是会修改原本列表里的值。
⑤ 代码示例:

#CalFibonacci子函数部分
def CalFibonacci(n):                	#def函数 定义一个新函数(CalFibonacci函数,n为一个对象)
    if n <= 0:                      	#判断输入值小于等于0
        return 0                    	#返回0
    elif n == 1 or n == 2:          	#判断是否为F(2)和F(3)项
        return 1                    	#斐波拉契数列二,三项都为1
    else:								#当最近的if不成立时,执行下面这段语句
       return CalFibonacci(n-2)+CalFibonacci(n-1)   #F(n)=F(n-2)+F(n-1)

#main主函数部分
number=input("请输入大于1的范围数\n") 	#number为字符串数据类型
x=int(number)                       	#将number强制类型转换为整型 赋值给变量x
List = []                           	#定义一个对象名为List的空列表
for i in range(x):
    List.append(CalFibonacci(i))    	#append()函数:列表末尾添加新的对象
    if List[i] > x:                 	#当列表新增对象大于输入值number时
        break                       	#终止for循环
for i in range(len(List)-1):        	#遍历List列表
    if i==0:
        print(List[i], end=',')    		#输出F(1)项
    elif i>0 and List[i-1]+List[i]<x:
        print(List[i], end=',')     	#输出F(2)到 F(n-1)项
    else:
        print(List[i])             		#输出F(n)项

6.水仙花数 & 玫瑰花数

水仙花数的概念:指一个3位数,它的每一位上的数字的3次幂之和等于其本身(100~1000之间)
pow()函数:python中的内置函数,它接收两个参数,x和y,pow(x,y)函数返回的是x的y次方的值。
语法:pow(1,3) 等价于 1的三次方幂
① 水仙花数代码:

#narcissistic number
#水仙花数的概念:指一个3位数,它的每一位上的数字的3次幂之和等于其本身
#范围:(100~1000)
#例如:153  1*1*1+5*5*5+3*3*3=153
print("水仙花数如下所示:")
for i in range(1,10):                   		#遍历1~9 最高位(百位)不能为0
    for j in range(0,9):                		#遍历0~9 次高位(十位)
        for k in range(0,10):           		#遍历0~9 最低位(个位)
            sum1 = pow(i,3)+pow(j,3)+pow(k,3)   #例如:1*1*1+5*5*5+3*3*3=153
            sum2 = i*100+j*10+k         		#例如:1*100+5*10+3=153
            if sum1 == sum2:					#判断两式相等,输出水仙花数
                print("水仙花数:%3d"%(sum1))

② 玫瑰花数代码:

#number of four roses
#四位玫瑰花数的概念:指一个4位数,它的每一位上的数字的4次幂之和等于其本身
#范围:(1000~10000)
#例如:1634  1*1*1*1+6*6*6*6+3*3*3*3+4*4*4*4=1634
print("玫瑰花数如下所示:")
for i in range(1000,10000):
    #方法1
    a = int(i%10)           #个位
    b = int(i/10%10)        #十位
    c = int(i/100%10)       #百位
    d = int(i/1000)         #千位
    sum1 = pow(a, 4) + pow(b, 4) + pow(c, 4) + pow(d, 4)
    # 方法2
    # sum1 = pow(int(i%10),4) + pow(int(i/10%10),4) + pow(int(i/100%10),4) + pow(int(i/1000),4)
    if sum1 == i:
        print("玫瑰花数:%4d"%(sum1))

7.回文数

① 什么是回文数?

指数字从左至右数和从右至左数完全相等,例如121 232 353…

# 判断输入的数字是否为回文数(palindromic number)
# 回文数指 该数字从左至右 = 从右至左   例如 121  232 101...
# 0~9都是回文数
List = []                         	# 定义一个对象名为List的空列表
num = input("请输入大于0的数\n")     # number为字符串数据类型
number = int(num)                   # 强制类型转换
x, y , z = 0, 1 , 1                 # 赋变量x,y初值x=0 y=1
# 将输入数按个位~N位反向排序
str1 = []
for i in range(len(num)):           # 将输入数num依次存入List列表
    str1 = List.append(number%10)   # append()函数:列表末尾添加新的对象
#   print(List[i], end=' ')         # 按输入数从N位~个位依次输出
    number = number // 10           # 缩小10倍
print('\nnum=', num)
for j in range(len(List)-1):
    y *= 10
for i in range(len(List)):          # 遍历List列表
    x += List[i] * y                # 列表每个元素依次*10求和赋值给X
    y /= 10                         # 增大10倍
print('x=', int(x))
if int(num) == int(x):              # 判断输入数num是否等于X
    print("\nTrue")
else:
    print("\nFalse")

8.九九乘法口诀表

一、什么是format函数?

它是一种字符串格式化的方法,主要是用来构造字符串。
基本语法:通过 {} 和 : 来代替以前的 % 。在 {} 符号操作过程中,每一个 {} 都可以设置顺序,
分别与format的参数顺序对应,如果没有设置{}下标,默认重0开始递增。
(1)语句1:print("{:.5f}".format(3.1415926)),它的输出为3.14159,表示保留小数点后五位有效数字。
(2)语句2:print("{1} {0} {2} {1}".format(“hello”, “world”,“of ESP”)),它的输出为’world hello of ESP world’,注意下标位置。

#multiplication table
print("N阶乘法口诀表")
num = input("请输入一个数字\n")
for i in range(1,int(num)+1):
    for j in range(1,i+1):
        print("{}*{}={:1d}".format(j, i, i * j), end=" ")
    print('\n')

9.判断是否为闰年,这一天在该年份的第几天

1、闰年条件:
年份能被400整除
年份能被4整除 同时 不能被100整除

#For a leap year
#判断输入的日期,是否为闰年,并且在当前年份的第几天
#例如 2000 12 31      是闰年   在当前年份的第366天
#例如 2001 12 31      不是闰年 在当前年份的第365天
month_day = [31,28,31,30,31,30,31,31,30,31,30,31]       #1~12月的天数
sum_day = 0                                             #总天数
year  = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day   = int(input("请输入天数:"))

def Leap_Year(year):              #闰年判断条件:year能被400整除 或者  Year能被4整除 和 不能被100整除
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
        print(year,"年是闰年")
        month_day[1] = 29         #是闰年时,将2月天数改为29天
    else:
        print(year,"年不是闰年")

Leap_Year(year)                   #调用判断闰年函数

for i in range(int(month)-1):     #遍历月份列表
    sum_day += month_day[i]       #累加输入月份前总天数
sum_day += int(day)               #加当月天数
print("{}-{}-{}在这一年的第{:2d}天:".format(year, month,day,sum_day))

10.天天向上的力量

天天向上的力量:指周一到周五每天都在学习进步,周末松懈玩耍,累积一年后的结果为多少?

#天天向上的力量
#当每天进步1%,平年一年后的累积进步结果为 (1+1%)^365  闰年:(1+1%)^366
#假设周一到周五在进步,周六周日在退步(假设1月1号为周一)
year    = input("请输入你想从哪一年开始进步,如2023\n")
dayrate = input("请输入一个每天进步的速度,如1%请写0.01\n")
dayback = input("请输入周末每天松懈的速度,如1.5%请写0.015\n")
year1   = eval(year)
day_rate = eval(dayrate)
day_back = eval(dayback)
step_speed = 1              #退步的速度积累值
if (year1 % 4 ==0 or year1 %100 !=0) and year1 % 400 ==0:
    day_number = 366
    print("恭喜你比平年多一天!")
else:
    day_number = 365
    print("恭喜你比闰年少一天!")

for i in range(1,day_number+1):                 #从第一天开始
     # print(i,end=',')                         #遍历输出每一天
     # if i%30==0:                              #30个元素回车换行一次
     #    print()
     if (i%6==0 or i%7 ==0) and day_back != 0:  #周末时间,开始玩耍
        step_speed *= pow(1+day_back,1)         #oh my gad,知识量下滑
     else:
        step_speed *= pow(1+day_rate,1)         #学习时间,开始努力
result = step_speed                     #检验结果的时间到啦
#result = pow(1+day_rate,day_number)     #That's nice,知识量增加
#print(day_back)
print("周一到周五进步{0:%}的情况下,周末松懈{1:%}的情况下,\n一年后对应的累积效果为初始状态的{2:.5f}倍".format(day_rate,day_back,result))

总结

刚开始学习python,记录下自己的知识收获,面向大海,春暖花开!
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本书围绕据的表示、存取、计算、分析和可视化等内容分两部分详细介绍Python语言程序设计:Python程序设计基础部分(第1章至第6章、第10章)主要介绍Python作为一门高级编程语言所涉及的语法知识、控制结构、函与模块、类和对象、图形界面设计,并穿插了计、累加、连乘等值计算常用算法内容;Python据管理与分析部分(第7章至第9章、第11章)主要介绍据文件操作、据库操作、据分析和据可视化等知识。 本书按照首先论道、继而论理、然后操作的顺序,从哲学视角看程序设计,使读者在认识物质世界规律的过程中了解计算机的特点、程序设计的特点和人机交互的规律,在认识世界、解释世界和改造世界的实践中掌握Python编程特点、技术和技巧,学会结构化程序设计、面向对象程序设计、人机交互界面设计和据分析等方面的编程技术。 本书可供大据专业学生学习程序设计使用,也可作为高等院校“Python程序设计”课程教材,还可供据分析人员参考。 内容实用——理论与实践结合,重点突出应用 体系完善——构建完整的大据专业解决方案 产教融合——高校企业共参与,对标行业标准 资源丰富——微课、课件、教案、源码、答案 随着国家大据战略的深入实施,各行业智慧化建设急需据分析人才和智能应用人才。智慧化简单来说是一个以机器替换人力的过程,而机器的“灵魂”是程序。Python已经成为公认的驱动大据智能应用的主流编程语言Python程序设计的书籍已经琳琅满目,每一本书都凝聚了作者对Python的理解和对程序设计的认识,都是作者编程开发和教学经验的总结,都折射出作者的专业背景。由于大据专业学生对程序设计的要求不是很高,但又需要具备一定的计算思维能力,熟悉用程序进行据分析的一般流程,因此程序设计教材要言不甚深、文不甚俗,既要覆盖相关技术,又不能面面俱到,注重对问题的分析和解释,用程序表达算法。鉴于此,我们编写了本书。 本书每一章的标题都以Python开头,凸显Python在各个部分都有其独特的编程理念和方法。与其他高级编程语言如C、C++和Java等相比,Python据的表示、处理和可视化方面都有绝对的优势。有编程基础的学习者在学习Python时最好能忘掉以往程序设计语言的语法,彻底转变观念,以全新的姿态融入到Python的编程特点和规律之中。如变量定义、据类型、据结构、控制结构、类和对象、文件访问、据分析和可视化,每一部分都有其特别之处,都值得我们重新认识,重新使用,重新熟悉。每一章开始的思维导图都是对本章技术脉络的梳理,开门见山地给学习者展示本章的知识和技术体系,以便学习者在学习过程中始终能保持思路清晰和整体把握。每一章开头的本章导读都是编者多年来程序开发与设计教学经验的提炼与升华,都是对程序设计的理解和感悟,值得学习者深入领会。每一章开头的本章要点都是要求学习者深入理解的重要知识和熟练掌握的关键技术。每一章的小结都是对本章要点的具体解释,供学习者复习查询。 本书为河北省高等教育教学改革研究与实践项目“新工科背景下警务大据应用专业人才培养模式与教学实践研究”(编号:2018GJJG450)的阶段性成果。 下面是本书的体系结构图。 第1章Python编程初步。学习本章,要了解Python作为一种计算机程序设计脚本语言,结合了解释性、编译性和互动性的特点;了解在Linux和Windows中安装Python的方法;了解IDLE、PyCharm和Jupyter三种常用Python程序编辑环境。工欲善其事,必先利其器,通过对本章的学习学习者可拥有一个强大的编程工具,从此开启据分析编程之旅。 第2章Python语言基础。Python作为一门与计算机交流的编程语言,有着跟自然语言相似的特点:字、词、句、段落、章,以及相应的行文语法规则。学习本章,要理解程序行文的字词句,主要包括基本据类型、常量和变量、运算符和表达式;理解程序的段落和章,主要包括常用内置函、库函和系统函的使用;掌握程序的语法规则,主要包括常用的变量定义和标识符命名规则、语句组织成文编码规则等。这些都是程序设计的基础,学习者只有对此熟练掌握后,才能在后续的学习中得心应手。 第3章Python组合据类型。组合据类型是Python语言区别于其他高级编程语言的一大特色,通过组合据类型,省去了其他语言各种复杂据结构的设计,给编程人员带来了极大的方便,这也是Python流行于据分析领域的原因之一。学习本章,要熟练掌握Python组合据类型(列表、元组、字符串、字典、集合)的创建、访问和常见基本操作,以及序列解包功能。 第4章 Python控制结构。针对物质随时间由简单向复杂、由低级向高级发展的顺序,Python语言有相应的顺序结构语句;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值