《Python语言程序设计》第二章(基本程序设计)学习笔记

《Python语言程序设计》学习笔记

笔记选自《Python语言程序设计》[美]梁勇 著
本篇笔记用没有记录用python绘画的turtle库


第二章 基本程序设计

  • 在一条print语句中显示任意多项,如果某项是一个数字,那么这个数字会被自动转化为显示一个字符串
print(item1, item2, itemk)
  • 提示用户输入一个值,然后将它赋给变量variable
variable = input("Enter a value:") #输入的值是一个字符串
  • 对字符串求值并转换为一个数值,eval函数
# Prompt the user to enter a radius
radius = eval(input("Enter a value for radius:"))

#Compute area
area = radius * 3.14159

# Display results
print("The area for the circle of radius", radius, "is", area)
eval("3 + 4") #返回7
  • 从键盘读取多组输入
number1 = eval(input("Enter the first number:"))
number2 = eval(input("Enter the second number:"))
number3 = eval(input("Enter the third number:"))
  • 通常,一条语句会在一行的末尾处结束。
  • 在某些情况下,Python解释器不能确定在多行中哪里是语句的结尾。可以在一行结尾处放置一个继续符号\来告诉解释器这条语句继续到下一行,如下面的语句。
sum = 1 + 2 + 3 + 4 + \
    5 + 6
# 等价于sum = 1 + 2 + 3 + 4 + 5 + 6
  • 标识符用于命名程序中标识像变量和函数这样的元素,所有的标识符必须遵从以下规则:

    • 标识符是由字母、数字和下划线(_)构成的字符序列。
    • 标识符必须以字母或下划线(_)开头,不能以数字开头。
    • 标识符不能是关键字关键字,又被称为保留字,它们在Python中有特殊意义。例如:import是一个关键字,它告诉Python解释器将一个模块导入到程序。
    • 标识符可以为任意长度。
  • 一个值被赋给多个变量,变量在表达式中使用之前必须被创建

i = j = k = 1
count = 1 #变量在使用前必须被创建
count = count + 1
  • 同时赋值,含义是Python计算等号右边的表达式并同时赋值给等号左边对应的变量。
var1, var2, var3 = exp1, exp2, exp3
  • 同时赋值也可以用于在一条语句用获取多个输入。
number1, number2, number3 = eval(input("Enter three numbers separated by commas: "))
  • 简化交换x, y的值
x, y = y, x #Swap x with y
  • Python没有命名常量的特殊语法,为了区别常量和变量,我们全部使用大写字母来命令常量。PI = 3.1415926

  • 使用常量有下面三个好处:

    • 你不必为了使用一个值多次而重复性输入。
    • 如果你需要修改常量的值,只需要在源代码一处进行修改
    • 描述性名字会提高程序的易读性。
  • Python中有两种数值类型(整数和浮点数)与+、-、*、/、//、%和**一起工作

  • 一个拥有小数点的数字即使小数部分为0也是浮点数。整数和浮点数在计算机里的存储方式不同。

算数运算符

名称含义举例结果
+加法34+135
-减法34.0-0.133.9
*乘法300*309000
/浮点数除法1/20.5
//整数除法1//20
**求幂4**0.52.0
%取余20%32

运算符+和-既可以用于一元运算也可用于二元运算符。一元运算符只能有一个操作数,而二元操作符有两个操作数。如:-5中的符号是一元的,表示5的相反数。

  • 程序设计中求余运算非常有用。例如:偶数%2总是0而奇数%2总是1。这样,你就可以用这个特性判断一个数字是奇数还是偶数。

  • 科学计数法
    浮点数可以用 a ∗ 1 0 b a*10^b a10b形式的科学计数法来编写。例如:123.456的科学计数法表示为 1.23456 ∗ 1 0 2 1.23456*10^2 1.23456102,Python中被写作1.23456E21.23456E+2;而0.0123456可以表示为 1.23456 ∗ 1 0 − 2 1.23456*10^{-2} 1.23456102,Python中被写作1.23456E-2。字母E(或e)代表指数而且可以大写也可以小写。

  • 当一个变量被赋值一个太大的值而不能存入内存中。这会导致数据溢出。当一个浮点数太小(即太接近0)会导致下溢,而Python会将它近似为0。因此,你不需要关注下溢。

  • Python表达式的计算方式与算术表达式一致

  • 首先执行括号内的运算符,内存括号里的表达式首先被执行。当一个表达式中使用多个运算符时,使用下面的运算符优先级规则决定计算顺序:

    • 首先计算指数运算**
    • 接下来计算乘法*、浮点除法/、整数除法//和求余运算%。如果一个表达式包含多个乘法、除法和求余运算,它们会从左向右运算。
    • 最后计算加法+和减法-运算符。如果一个表达式包含多个加法和减法运算,它们会从左向右运算。
  • 增强型赋值运算符:运算符+-*///%**可以与赋值运算符(=)组合在一起构成简捷运算符。

运算符名称举例等式
+=Addition assignmenti += 8i = i + 8
-=Subtraction assignmenti -= 8i = i - 8
*=Multiplication assignmenti *= 8i = i * 8
/=Float division assignmenti /= 8i = i / 8
//=Integer division assignmenti //= 8i = i // 8
%=Remainder assignmenti %= 8i = i % 8
**=Exponent assignmenti **= 8i = i ** 8
  • 类型转换:
    希望获取小数的整数部分,可以使用int(value)函数来返回一个浮点值的整数部分。
  • 函数int也可以用于将整数字符串转换为整数。

注意
函数int也可以用于将整个字符串转换为整数。例如:int("34")返回34。
所以,你可以使用函数evalint将字符串转换为整型。
int函数不能用于非整型字符串。例如:int("3.4")将导致错误。
函数eval可以完成比简单转换更多的功能,可以用于计算表达式。例如:eval("3+4")返回7
eval函数处理数字串前有先导0时会产生错误,而int函数可以很好地处理这个问题。例如:eval("003")会导致错误,而int("003")会返回3

value = 5.6
int(value)
# 输出5,注意:小数部分被舍掉了而没有进位

也可以使用round函数对数字进行四舍五入进位

value = 5.6
round(value)
# 输出6
  • 注意:函数intround不会改变要转换的变量。调用函数后value的值没有改变。

  • 保留小数点后两位的营业税的程序(tax*100) / 100.0

# Prompt the user for input
purchaseAmount = eval(input("Enter purchase amount: "))

# Compute sales tax
tax = purchaseAmount * 0.06

# Display tax amount with two digits afer decimal point
print("Sales tax is", int(tax*100) / 100.0)
  • 实例研究:显示当前时间

  • 显示当前时间time.time() 返回以秒为单位的带毫秒精度的浮点值从1970年1月1日00:00:00开始到现在的GMT时间。这个时间被称作UNIX时间点。1970年是UNIX操作系统正式发布的年份。例如:time.time()返回1285543633.205 它表示1285543633秒205微秒

  • 以小时:分钟:秒数为格式显示当前GMT时间的程序

import time

currentTime = time.time() # Get current time

## Obtain the total seconds since midnight, Jan 1, 1970
totalSeconds = int(currentTime)

# Get the surrent second
currentSecond = totalSeconds % 60

# Obtain the total minutes
totalMinutes = totalSeconds // 60

# Compute the current minute in the hour
currentMinute = totalMinutes % 60

# Obtain the total hours
totalHours = totalMinutes // 60

# Compute the current hour
currentHour = totalHours % 24

# Display results
print("Current time is", currentHour,":",currentMinute,":",currentSecond,"GMR")

# 此处输出是:Current time is 9 : 45 : 35 GMR

在实例运行中,显示数字9为小时数,而希望输出应该是09。这可以使用一个在一个数字前加0的函数format来修正
def formar(number, width):
这个函数返回一个前缀为一个或多个0的数字。字符串的大小就是宽度。例如:format(34,5)返回“00034”。
如果数字比指定宽度要长,那么,函数就返回表示这个数的字符串。例如:format(34,1),返回“34”。

  • 程序开发周期:明确需求、系统分析、系统设计、实现、测试、部署和维护。

本章总结

  1. 可以使用input函数来获取输入,使用eval函数将字符串转化为数值。
  2. 标识符是程序中使用的元素的名字
  3. 标识符是由任意长度的英文字母、数字、下划线(_)和星号(*)构成的字符序列。标识符必须以英文字母、下划线开头,不能以数字开头。标识符不能是关键字。
  4. 在程序中变量用于存储数据。
  5. 等号(=)的作用是赋值运算符
  6. 在使用一个变量前必须对它赋值。
  7. Python中有两个数值数据类型:整数和实数。整数型(简写为int)适用于整数,而实数型(又称浮点型)适用于有小数点的数字。
  8. Python提供执行数值运算的运算符:+(加法)、-(减法)、*(乘法)、/(除法)、//(整数除法)、%(求余)和**(指数运算)
  9. Python表达式中数字运算符的运算法则与算术表达式一样。
  10. Python提供增强型赋值运算符:+=(加法赋值)、-=(减法赋值)、=(乘法赋值)、/=(浮点数除法赋值)、//=(整数除法赋值)和%=(求余赋值)。这些运算符由+、-、、/、//、%和**与赋值运算符(=)组合在一起构成增强型运算符。
  11. 在计算既有整型又有浮点型值的表达式时,Python会自动将整型转化为浮点型。
  12. 你可以使用int(value)将浮点型转换为整型。
  13. 系统分析是指分析数据流并且确定系统的输入和输出。
  14. 系统设计是一个程序员开发从开始输入到获取输出的流程。
  15. 系统设计与分析的实质就是输入、处理、输出。这被称为IPO。

关键术语

英文中文
algorithm算法
assignment operator(=)赋值符(=)
augmented assignment增强型赋值
camelCase驼峰拼写法
compound assignment复合赋值
data type数据类型
expression表达式
floating-point numbers浮点数
identifiers标识符
incremental development and testing递增式开发与测试
input, process, output(IPO)输入、处理、输出(IPO)
keyword关键字
line continuation symbol续行符
literal字面量
operands操作数
operators运算符
pseudocode伪代码
reserved word保留字
scope of a variable变量的范围
simultaneous assignment同时赋值
system analysis系统分析
system design系统设计
type conversion类型转换
variable变量
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值