(python语言程序设计教程)自学二

(python语言程序设计教程)自学二


前言

本系列文章,主要是对学校开设的python课程进行总结,教科书为:python语言程序设计


一、编写简单的程序

1.1. 标识符及命名规则

在程序中需要为模块命名、为函数命名,也需要为变量命名,从专业术语上来说,所有的这些符号都称为“标识符”。

Python 语言对标识符的构成是有要求的:
每个标识符必须以字母或下画线“_ ”开头,后跟字母、数字或下画线的任意序列。

根据这个规则,x、num、num_1、numEggs、python123都是标识符,而 2x、a-b、num Eggs 都是不合法标识符。在命名的时候,可以采用“驼峰式”命名法。

有一些标识符是 Python 语言本身的一部分,这些特殊的标识符称为“关键字”或“保留字”,它们不能像普通标识符那样使用。如下查看关键字:

#查看关键字:
import keyword
print(keyword.kwlist)

1.2. 变量与赋值语句

  1. python语言中的变量是用来标识对象或引用对象的

  2. python是一种强类型语言,只支持该类型允许的运算操作

  3. 变量的赋值就是用一个变量来标识某个对象

  4. 链式赋值用于为多个变量同时赋予相同的值

  5. 解包赋值语句: python支持将序列数据类型解包为对应相同个数的变量

x = y = z = 100
print(x,y,z)
x = 100;y = 200
print(x,y)
a , b = "星","石"
print(a,b)
a,b = b,a
print(a,b)


#结果:
100 100 100
100 200
星 石
石 星

1.3. 数值

  1. 计算机程序存储和操作的信息通常称为数据

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

#内置的运算函数
print(divmod(234,5))
print(pow(2,4))
print(pow(2,4,3))

#math库中的函数
from  math import gcd,modf,factorial,pow,degrees,pi,radians,hypot
print(gcd(12,28)) #返回最大公因数
print(modf(3.4)) #返回小数、整数
print(factorial(5)) #返回阶乘
print(pow(2,3)) #返回x的y次幂
print(degrees(pi));print(radians(180))  #分别返回对应的角度值、弧度制
print(hypot(4,3)) #返回到原点的距离



#结果:
(46, 4)
16
1
4
(0.3999999999999999, 3.0)
120
8.0
180.0
3.141592653589793
5.0

1.4. 字符串

使用单引号或双引号引起来的内容,称为字符串类型数据(str),python语言的解释器会自动创建str类型对象实例

name = input("请输入您的姓名:")
introduce = input("介绍一下自己:")
zong = f"大家好!我的名字是{name},{introduce},请多关照"
print(zong)

m = int(input("输入月份:"))
months  = "janfebmaraprmayjunjulaugsepoctnovdec"
pos = (m-1) *3
print(months[pos:pos+3])

#结果:
请输入您的姓名:星石
介绍一下自己:星辉浸染的石岩,镌刻那古老的传说:万千生灵信仰的所在
大家好!我的名字是星石,星辉浸染的石岩,镌刻那古老的传说:万千生灵信仰的所在,请多关照
输入月份:3
mar

字符串处理与操作:

  1. 字符串查找:
    find()、rfind()
    index() 、rindex()
    count()

  2. 字符串分割:
    split() 与rsplit()
    partition() 与rpartition()

  3. 字符串连接:
    join()

二、turtle画图

2.1. 绘制爱心并书写文本

import turtle

# 绘制爱心
turtle.pencolor('red')	# 画笔颜色
turtle.penup()	# 提笔
turtle.goto(0,100)
turtle.begin_fill()	# 开始填色
turtle.fillcolor('pink')	# 填充颜色
turtle.pendown()	# 落笔
turtle.left(135)
turtle.circle(70.7,180)
turtle.goto(0,-100)
turtle.left(90)
turtle.goto(100,0)
turtle.circle(70.7,180)
turtle.end_fill()	# 结束填色
turtle.hideturtle()	# 隐藏画笔形状
# 书写文本
turtle.pencolor("blue")
turtle.penup()
turtle.goto(0,-150)	# 将画笔移动到书写位置
turtle.write("星石传说", align="center")
turtle.done()# 停止绘图,但窗口不关闭

在这里插入图片描述

2.2. 绘制幸运的四叶草

import turtle

turtle.fillcolor("pink") #设置填充颜色
turtle.begin_fill() #开始填色
#绘制花瓣#第一片叶子
turtle.circle(80,45); turtle.circle(20,180); turtle.left(180)
turtle.circle(20,180); turtle.circle(80,45) ;turtle.left(180)
turtle.circle(80, 45); turtle.circle(20,180) ;turtle.left(180)
turtle.circle(20,180) ;turtle.circle(80,45) ;turtle.left(180)
turtle.circle(80,45) ;turtle.circle(20,180) ;turtle.left(180)
turtle.circle(20,180); turtle.circle(80,45) ;turtle.left(180)
turtle.circle(80,45) ;turtle.circle(20,180) ;turtle.left(180)
turtle.circle(20,180) ;turtle.circle(80,45) ;turtle.left(180)
turtle.end_fill()	# 结束填色

# 绘制花枝
turtle.pencolor("green")
turtle.pensize(2)	#设置画笔宽度
turtle.penup()
turtle.goto(-25,-25) ;turtle.pendown(); turtle.right(90)
turtle.circle(-200,60)
turtle.hideturtle()	# 隐藏画笔形状


# 书写文本
turtle.penup()
turtle.goto(0, 100)
turtle.write('N号观察者!', font=('arial', 18, 'italic'))
turtle.done()	#停止绘图,但窗口不关闭

在这里插入图片描述

2.3. 浪漫的玫瑰花

import turtle
#绘制玫瑰花
# 设置初始位置 turtle.penup()
turtle.goto(0,200) ;turtle.pendown()
# 绘制花朵
turtle.pensize(5)
turtle.fillcolor("red"); turtle.begin_fill()
turtle.circle(10,180) ;turtle.circle(20,120) ;turtle.left(40)
turtle.circle(60,45)


turtle.circle(20, 160); turtle.right(20)
turtle.forward(30)	# 前行
turtle.left(15)
turtle.circle(30,120); turtle.forward(20); turtle.left(30)
turtle.circle(80,60) ;turtle.circle(30, 150) ;turtle.right(30) ;turtle.forward(15)
turtle.circle(80, 90) ;turtle.left(20)
turtle.forward(40);turtle.right(160) ;turtle.forward(30) ;turtle.left(155)
turtle.circle(150,80) ;turtle.left(50)
turtle.circle(150,80) ;turtle.end_fill()
# 回到花朵底部
turtle.penup(); turtle.left(180)
turtle.circle(-150,80)	# 参数为负数代表反向画圆弧
turtle.pendown()
# 绘制叶子
turtle.setheading(-90)	# 设置画笔方向,负数表示反向
turtle.forward(30)
turtle.setheading(160) ;turtle.forward(20) ;turtle.left(40)
turtle.fillcolor("green"); turtle.begin_fill()
turtle.circle(-80,80); turtle.right(100)
turtle.circle(-80,80); turtle.end_fill()# 回到花枝主干
turtle.setheading(160)
turtle.backward(20)	# 后退
turtle.setheading(-90);turtle.forward(40)# 绘制叶子
turtle.setheading(45) ;turtle.forward(20) ;turtle.right(40)
turtle.fillcolor("green"); turtle.begin_fill() ;turtle.circle(80,80); turtle.left(100)
turtle.circle(80,80) ;turtle.end_fill()


# 回到花枝主干
turtle.setheading(45) ;turtle.backward(20)
turtle.setheading(-90) ;turtle.circle(-200,50)
turtle.hideturtle() 
# 书写文本
turtle.pencolor("purple")
turtle.penup()
turtle.goto(0, 100)
turtle.write('赠人玫瑰,手留余香', font=('arial', 18, 'italic'))
turtle.done()	#停止绘图,但窗口不关闭

在这里插入图片描述

三、课后习题

在这里插入图片描述

#1.

from math import atan,sqrt,pi,log,e
print(sqrt((pi)**2 +3))
print(log((2*pi)*sqrt(13+e)))
print(atan(log(pi+1,3))) #atan(),反正切函数值

#2.
v = 4/3 *pi*(2.11**3)
print(f"{v:.2f}")
s = pi*(16.2**2-9.4**2)
print(f"{s:.2f}")
tj = pi*66**2*24.2
print(f"{tj:.2f}")
bmj =2* pi*66**2 +2*pi*66*24.2
print(f"{bmj:.2f}")

3.
x1 = int(input("输入第一个点的横坐标:"))
x2 = int(input("输入第二个点的横坐标:"))
y1 = int(input("输入第一个点的纵坐标:"))
y2 = int(input("输入第二个点的纵坐标:"))
juli = sqrt((x1 - x2)**2 + (y1 - y2)**2)
print(f"{juli:.2f}")


#4.
url = "http://sports.sina.com.cn/"
print(url.count("t"))
print(url.find("com"))
print(url.replace(".","_"))
print(url[7:13],url[-12:-8])
print(url.upper())
print(len(url))
print(url+"index")


#5.
chinese = int(input("输入语文成绩:"))
Math = int(input("输入数学成绩:"))
english = int(input("输入英语成绩:"))
import pandas as pd
import numpy as np
cj = pd.Series([chinese,Math,english])
print(cj.sum(),cj.mean(),cj.max(),cj.min())
qz = pd.Series([0.5,0.3,0.2])  #或者:qz = [0.5,0.3,0.2]
print(np.dot(cj,qz))


#6.
sws = int(input("请输入一个三位数的整数:"))
bai = sws //100 ;shi = sws//10 %10 ; ge = sws%10
he = bai +shi+ge
print("和为:" , he)

结果如下图所示:

在这里插入图片描述


总结

本章简单预习了一下该本书的第二章。巩固了我之前的知识,也更加全面的了解了相关知识。

知誰之子,象帝之先。

–2023-9-21 筑基篇

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星石传说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值