python程序设计案例教程-笔记【1】

本文介绍了Python中的print()函数用法,input()的变量接收和控制,数据类型如数字、字符串、布尔等,运算符的使用,字符串处理函数str()和format(),ASCII编码,random模块的应用以及基本的赋值运算和数学函数。
摘要由CSDN通过智能技术生成

1.print()函数的应用

print()函数完整语法格式:

print(value,...,sep='',end='\n',file=sys.stdout,flush=False)

print可以输出单个的值也可以一次性输出多个值,多个值之间应用“,”分割开(此处是英文半角逗号),函数输出时,多个值之间默认以空格分隔,可以使用sep=设置分隔的符号或文字,引号内为空则所有的值输出时直接相连。

输出完最后一个值后,默认以\n结尾,表示换行,end=设置结尾,“\t”与“ ”类似,具体区别可参阅其他博客。

file可以将输出存为文件,将输出内容存到相应的文件中,默认为sys.stdout,也可以自己设置到路径下。(个人认为暂时不需要深入了解)

flush《表示是否立刻将输出语句输出到目标对象》,,,emm,官方是这样说的:whether to forcibly flush the stream.大致意思就是是否实时刷新,跟上面一样,暂时不用深入了解。

数字类型的数据可以直接输出,也可以进行运算后输出,但是不能和字符串进行运算,可以用,连接,或者将数字加上引号变为字符串,单引号和双引号在括住东西的时候是没有区别的。

数据类型见后续内容。

2.input()函数的应用

这里引入了一个概念叫变量,可以把一个赋给变量,高中学数学的时候应该学过,不用过多介绍了。在python中,不需要先声明变量名及类型,直接赋值可创建各种类型的变量,变量的命名有如下规则:

  • 变量名由字母(Unicode字符中的字母)、数字、下划线构成,但是不能以数字开头,区分大小写。
  • 不能使用python的保留词,如:and,or,continue等。
  • 慎用小写字母l和大写字母O,因为容易和1以及0搞混。
  • 应选择有意义的单词作为变量名,怕你忘了你100天前写的变量是什么。

更多详见PEP 8

python是一种动态类型的语言,变量可以随时变化。

使用内置函数type()可以返回变量类型。

input()函数的基本格式如下:

variable = input("提示文字")

input()函数可以接收用户的键盘输入,双引号之间的内容仅为提示用户输入的文字,不会进入变量。结尾加\n可以换行后输入。

3.数据类型和运算符

常见的数字类型有整数型、浮点数型、复数型。

要区分小数整数是不一样的,python中小数叫浮点数(名字很高大上),复数就和高中数学讲的一样。那为什么小数要和整数分开呢?大家都知道计算机内部都是101110001010000111101...,整数的二进制是一个有限的二进制数,而二进制的小数,要么不能表示,要么就是一个循环小数(以上是我猜测的,如有大神知道,还望相告)

整数,python中整数包括正整数、负整数和0,整数类型有十六进制hex、十进制、八进制oct和二进制bin。其中16、8、2进制的数要以0x、0o、0b开头,字母可以大写也可以小写。其他进制则需要调用numpy包。

运算符

运算符描述
[] [:]下标,切片
**指数
~ + -按位取反, 正负号
* / % //乘,除,模,整除
+ -加,减
>> <<右移,左移
&按位与
^ |按位异或,按位或
<= < > >=小于等于,小于,大于,大于等于
== !=等于,不等于
is is not身份运算符
in not in成员运算符
not or and逻辑运算符
= += -= *= /= %= //= **= &= `= ^= >>= <<=`

此表格来自骆昊,按照优先级从高到低的顺序列出了所有的运算符

运算符还是很多很吓人的,所以不用背,用多了自然会。

以下函数可以转换数据类型:(也来自骆昊,他整理的太好了)

  • int():将一个数值或字符串转换成整数,可以指定进制。
  • float():将一个字符串转换成浮点数。
  • str():将指定的对象转换成字符串形式,可以指定编码。
  • chr():将整数转换成该编码对应的字符串(一个字符)。
  • ord():将字符串(一个字符)转换成对应的编码(整数)。

数据类型

python中常见的数据类型有:

  • Number(数字)
  • String(字符串)
  • bool(布尔类型)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

+ ”运算符能实现数字的相加,即数值的相加,也可以实现字符串的拼接。

* ”数字与字符串相乘可以把字符串重复为数字的数量。

4.str()函数

字符串就是连续的字符序列,可以是计算机所能表示的一切字符的集合。python中,字字符串属于不可变序列。

字符串开始和结尾使用的引号形式必须一致。当需要表示复杂的字符串时,还可以进行引号的嵌套。

常见的转义字符及其作用:
转义字符说明
\续航符
\n换行符
\0
\t水平制表符,用于横向跳到下一制表位
\"双引号
\'单引号
\\一个反斜杠
\f换页
\0dd八进制数,dd表示字符,如\012代表换行
\xhh十六进制数,hh表示字符,如\x0a代表换行

在字符串前面加上字母r或R,可以使字符串中的转义字符不起作用,变为字符串。

str()函数用于将整数、浮点数、列表、元组、字典和集合转换为字符串。str()语法格式如下:

str(object)

str()函数的参数都省略时,该函数将返回空字符串。这种情况常用来创建空字符串或者初始化字符串变量。

5.format()函数

format()函数的语法格式为:

format(item,format-specifier)

格式控制符format-specifier(书中是format_spec)可以分为填充值、文字对齐、标志设置、格式化、类型转换、千位符(数字分组)等主要应用。

数据类型的格式化

个人感觉书上这块写的有些不够直观,这里引用另一本书上的内容:

如果条目item是一个浮点值,你可以用标识符以“ width.precisionf ”的形式给出格式的宽度和精确度。这里的宽度width指定得到的字符串的宽度,精确度precision指定小数点后数字的个数,而被称为转换码,它为浮点数设定格式。例如:

print(format(57.467657,"10.2f"))
print(format(12345678.923,"10.2f"))
print(format(57.4,"10.2f"))
print(format(57,"10.2f"))

1dd1ed892d03487289dfce2c311e3fbe.png

 显示:

670c85e1a1254c7e9ce22bc04f883971.png

 若省略宽度符,会被默认为是0,宽度会根据格式化这个数所需的宽度自动设置。例如:

print(format(57.467657,".2f"))

显示:

57.47

使用format()函数可以进行格式转换。如果未提供format()函数的参数format-specifier,则默认为将其他格式数据格式化为字符串类型,和调用str(value)的效果相同。

format-specifier的转换类型包括:(表格来自官方)

转换

意义

'd'

有符号整数十进制。

'i'

有符号整数十进制。

'o'

有符号的八进制值。

'u'

过时类型 – 它与 相同。'd'

'x'

有符号十六进制(小写)。

'X'

有符号十六进制(大写)。

'e'

浮点指数格式(小写)。

'E'

浮点指数格式(大写)。

'f'

浮点十进制格式。

'F'

浮点十进制格式。

'g'

浮点格式。使用小写指数 如果指数小于 -4 或不小于 精度,否则为十进制格式。

'G'

浮点格式。使用大写指数 如果指数小于 -4 或不小于 精度,否则为十进制格式。

'c'

单个字符(接受整数或单个字符) 字符串)。

'r'

字符串(使用 转换任何 Python 对象)。

's'

字符串(使用 转换任何 Python 对象)。

'a'

字符串(使用 转换任何 Python 对象)。

'%'

不转换任何参数,导致结果中出现字符。'%'

官方也说了,这种方法有点怪癖,所以建议使用str.format()方法:The formatting operations described here exhibit a variety of quirks that lead to a number of common errors (such as failing to display tuples and dictionaries correctly). Using the newer formatted string literals, the str.format() interface, or template strings may help avoid these errors. Each of these alternatives provides their own trade-offs and benefits of simplicity, flexibility, and/or extensibility.

以后有时间再聊聊这个str.format()

其他操作

对数据进行编号,也是对字符串格式化操作的一种方式,设置填充字符(编号通常设置为0,若不设置则默认为空格),设置对齐方式时可以使用“<”,“^”,“>”符号分别表示左对齐,居中和右对齐。进行操作之后数据会在给出的“宽度”(width)范围内输出。格式为:

print(format(数据,"填充字符对齐方式width")

所谓编号就是指数据在width中的位置。

例如:

print(format(1,'0>3'))      #设置右对齐,填充值为0,宽度为3

输出结果是:

001

居中就是显示在中间,但当width为偶数时:

print(format(1,'牛^8'))      #设置居中对齐,填充值为牛,宽度为8

输出:

牛牛牛1牛牛牛牛

其结果是中间靠左的,并且填充字符不能超过一个。否则:

8b282c626d6748b3985b87e1c02c8272.png

对于不同类型的数据,函数的参数format-specifier提供的值都不一样,常用的就如上的情况,其他的情况还是看书吧。

6.使用ASCII值与字符串

ASCII(American Standard Code for Information Interchange)是美国信息交换标准码,早期只有127个,现在拓展到了255个,字符和ASCII值对照关系可以戳这里查看→ ᓚᘏᗢ

与ASCII相关的主要函数有chr()函数和ord()函数,前面已经提到,chr()函数的作用对象是整数型,可以是十进制或十六进制。

小写字母的ASCII码比大写字母大32

汉字、特殊符号等等常用Unicode编码,其也可以通过上述函数实现同等效果。

这里是Unicode的官网→ (●'◡'●)

7.赋值运算符

书中这里讲的是赋值运算符的概念,这里也提一下,赋值运算符主要用来为变量等赋值。

运算符的详细内容,网上有很多资料,这里粘个链接好了------(≧∇≦)ノ

8.常用的数学函数

1.round()函数

round()函数用于返回数值的四舍五入值,其语法格式如下:

round(number[,ndigits])

number为要格式化的数值。ndigits为可选参数,小数点后保留的位数,不提供此参数时,四舍五入取整。

ndigits为负数时,向整数取整,若向前取整的位数超过了number的位数,则返回0.0。

此函数可以对浮点数整数进行操作。

2.pow()函数

pow()函数用于返回两个数值的幂运算值,如果提供可选参数z,则返回幂运算结果之后再对z取余,取余就是一个数除以另一个数后的余数。

print(pow(x,y,z))

x是底数,y是指数,如果有z则对z取余数。

3.divmod()函数

此函数用于返回两个数值(非复数)相除得到的商和余数组成的元组。

元组的概念后面会接触到,就是一个不可变的清单。

9.random模块的应用

模块(Module),是一个以py结尾的文件,Python 把各种定义存入模块,在脚本或解释器的交互式实例中使用。

在未调用模块的内容时,import一行会是灰色,并给出黄色的警告,只需要后面调用模块中的内容即可恢复正常。

random模块是python的一个内置模块,模块要用import导入。

列表(List),python中的一种数据结构,类似于刚刚提到的元组,但是列表是可变的,详细的后面也会接触到,字面意思就是个表格,列表中的元素以 , 隔开,列表整体用[ ]框起来。关于列表的一些PEP 8规范,后面再提。

random模块的常用功能:

1.random.shuffle(seq)

重新排列数据。

import random

num = [1, 2, 3, 4, 5, 6]
random.shuffle(num)
print(num)

执行结果如下:

[5, 4, 6, 1, 2, 3]

每一次执行的结果可能不同,因为是随机排列。

2.random,sample(seq,n)

从列表中选择n个随机且不重复的数组成一个新的列表,人话就是抽奖。

书上的例子是:

import random

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(random.sample(num, 5))

结果为

[0, 7, 4, 2, 1]

3.random.choice(seq)

从列表中随机返回一个任意元素。

import random

print(random.choice(["a", "b", "c", "d", "e", "f"]))

最后会随机的提取出其中的一个元素。

4.random.randrange([start],stop[,step])

第一个参数是开始值,第二个参数是结束值,第三个是步数,一步跳几个数,如果你把这个当成等差数列,步数就是公差。

51207333c1d44c038121b21e83d14d7b.bmp

用PyCharm会自动显示出各数据的作用。


到这里第二章的内容就结束了,第一章安装python我没有写,因为比较简单,IDE我用PyCharm。

书中讲的是用IDLE写的,我个人还是推荐用PyCharm或VScode。

IDLE是python安装时自带的,格式是bat,Windows批处理文件。相对位置在Python311\Lib\idlelib在此目录下可以找到idle.bat。(我用的是python3.11.4)

Life is short, I use Python.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

有机苯(代码小萌新)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值