ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day2

2022-07-24 00:02:47  阅读:164  来源: 互联网

标签:False python day2 运算符 字符串 str print


day2

君埋泉下泥销骨,我寄人间雪满头。


语言漫话

寻根溯源

冯·诺依曼结构

如今大多数的计算机硬件系统仍然是基于冯·诺依曼结构建立的。
冯·诺伊曼结构主要有两个方面

  • 存储设备与中央处理器分开
  • 数据以二进制方式编码

因此,计算机的硬件系统通常由五大部件构成,包括:运算器,控制器,存储器,输入设备和输出设备。其中,运算器和控制器放在一起就是我们通常所说的中央处理器,它的功能是执行各种运算和控制指令以及处理计算机软件中的数据。我们所说的程序就是指令的集合,程序就是将一系列的指令按照某种方式组合到一起,然后通过这些指令去控制计算机来做我们想让他做的事情。

变量和类型

变量本质上就是计算机的一块内存空间,一般具有读写操作。计算机处理的数据有许多种,除了数值之外,还包括文本,图形,音频,视频等多种数据。python中的数据类型有许多种,与其他语言一样,用户也可以自定义新的数据类型。接下里,先介绍几个新伙伴。

  • 整型:python中可以处理任意大小的整数,(python2中有intlong两种类型的整数区分,但这种区分在python3中就消失了,最后整数就只剩下了int老大哥留下来了,因此以后写大整数加减乘除的时候,知道用什么了吧),在python中二进制,八进制,十进制,十六进制表示的方法如下(这里统一表示16)
进制 表示方法
二进制 0b开头,0b10000
八进制 0o开头,0o20
十进制 直接写就可以了,16
十六进制 0x开头,0x10
  • 浮点型:浮点数就是小数,与定点数相对,定点数就是小数点是固定的,浮点数就是小数点是不固定,因为浮点数的表示方式采用的是科学计数法,因此小数点的位置是可以变化的。
a = 1.234 # 定点数
b = 12e34 # 浮点数
  • 字符串型:字符串是以单引号or双引号or三引号括起来的任意文本,比如'abc'"abc"'''abc'''"""abc""",当然还包括原始字符串r'\n'(这时候输出的不是换行,而是原先的文本内容\n,也就是说会输出原本的内容,而不是转义过后的内容),字节字符串,Unicode字符串有兴趣的可以自行了解。注意这之中只有三引号是支持多行形式,其他不行的。
  • 布尔型:python中只有TrueFalse两种值。注意这边的大小写,python是对大小写敏感的语言。当然也可以通过返回值为布尔值的表达式来进行赋值,比如1 < 2或者1 == 2等。
  • 复数型1 + 1j,这种形式就是复数的表示方式,注意这边的虚数单位使用j而不是用i,其他的表达方式与以前学过的数学知识匹配。

变量命名

你的名字是我读过最短的情诗

变量的命名遵循以下硬性规则(给解释器大哥一个面子):

  • 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线组成,数字不能开头
  • 大小写敏感(大写的A和小写的a是不一样的变量)
  • 不要跟关键字(有特殊含义的单词)和系统保留字(如函数、模块等的名字)冲突

人为要求如下(可以不遵守,只是建议)

  • 用小写字母拼写,多个单词用下划线连接
  • 受保护的实例属性用单个下划线开头
  • 私有的实例属性用两个下划线开头

当然如今合作编程独占鳌头,所以变量命名做到见名知意也是非常重要的。

变量的使用

python和别的语言不一样,不需要再为记不住变量类型而烦恼了,其自动匹配变量类型。也就是变量的定义加声明直接a = 123就是定义了一个整型变量a,前面不用加int。所以,如果a = 1, b = 2, a/b在python中输出的结果是0.5可不是像C中的0。

a = 321
b = 123
print(a + b)
print(a - b)
print(a * b)
print(a / b)

在python中可以使用type函数对变量的类型进行检查。这里的函数概念是通用的,笔者这里不表。

a = 100
b = 12.345
c = 1 + 5j
d = 'hello, world'
e = True
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(e))
"""
output:
<class 'int'>
<class 'float'>
<class 'complex'>
<class 'str'>
<class 'bool'>
"""

进行类型转换,可以使用python中内置的函数对变量类型进行转换。注意由于python中的变量类型不是我们定义的,所以如果是

a = 123
b = 12.3
a = b

这里可不会像C中进行强制类型转换,而是直接将a也变成12.3,所以python中的类型转换推荐使用python自带的类型转换函数,否则容易出现一些奇怪的错误。

函数 作用
int() 将一个数值或字符串转换成整数,可以指定进制(这里多是字符串指定什么进制转换成十进制)
float() 将一个字符串转换成浮点数
str() 将指定的对象转换成字符串形式,可以指定编码
chr() 将整数转换成该编码对应的字符串(一个字符)
ord() 将字符串(一个字符)转换成对应的编码(整数)
bool() 转换成布尔类型
complex() 转换成复数类型

填鸭来了:input()表示从键盘读取数据,括号中可以填入字符串,表示输出到输出设备上,作为提示

a = int(input('a = '))
b = int(input('b = '))
print('%d + %d = %d' % (a, b, a+b))
print('%d - %d = %d' % (a, b, a-b))
print('%d * %d = %d' % (a, b, a*b))
print('%d / %d = %f' % (a, b, a/b))
print('%d // %d = %d' % (a, b, a//b))
print('%d %% %d = %d' % (a, b, a%b))
print('%d ** %d = %d' % (a, b, a**b))

注意:看到input()就会了解到python对于字符串的优待了。其首先是将键盘上输入的信息转化为字符串形式存储,如果没有类型转换,那么默认就是str类型,所以使用input一般要配套使用前面的类型转换函数。这边前面的是占位符,和C/C++的类似,这里不再赘述。注意python中的格式化输出语句的格式,是通过%来分割的,不是,,逗号是用来分割语句的,而所需要占位的数据都是写在小括号中,通过逗号分离。

ps:这里的//是python中将整除和除法分离出来的产物,//代表整除,/代表正常的除法,**表示幂运算。

运算符

老生常谈的大魔王级别的运算符优先级表格(这年头能不能用括号区分优先级了)

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

建议用括号来保证运算的执行顺序

赋值运算符

就是将右边的值赋值给左边,也是区分===的开始

a = 10
b = 3
a += b
a *= a + 2
print(a)

a *= a + 2因为+的优先级高于*=,没办法,赋值运算符的优先级是最低的,最卑微的。因此该语句实际上等价于a = a * (a + 2)

比较运算符和逻辑运算符

比较运算符所组成的表达式的值是布尔类型的,包括==,!=,<,<=,>,>=,注意这边判断是否相等不是数学上的=,而是==

逻辑运算符有三个,and,ornot

  • and就是与运算,只有左右两边的布尔值都是True的时候表达式才会返回True,否则返回False。如果and左边的布尔值是False的时候,那么无论右边是什么值,其最终的结果都是False,因此在做运算的时候右边的值会被跳过(短路处理),即and左边的值为False的时候,右边的表达式根本不会执行,这点和C/C++非常相似。
  • or就是或运算,只有左右两边的布尔值都是False的时候,最终的结果才会是False,否则都为True。or一样也有短路运算,只要左边的布尔值是True,那么右边的表达式一样也根本不会执行。
  • not就是非运算。其只在后面添加一个布尔值,也就是单目运算符,作用就是返回和后面的布尔值相反的布尔值,比如后面是True,返回就是False。
a = 1==1
b = 3 > 2
c = 2 < 1
d = a and c
e = a or c
f = not(1 != 2)
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)
'''
output:
True
True
False
False
True
False
'''

课后练习

  • 这里%.1f和C/C++中的占位符的含义一样,也是输出小数,保留小数点后一位
  • 关于print(f'{f:.1f}')输出的解释:在字符串之前添加f表示格式化字符串,也就是此时我们原来的占位符此时可以替换成大括号,大括号包围的区域就是所需要替换的区域。
  • 跨行写代码可以借助()也可以借助'\',但是对于\\一定要是有一个运算符在前面否则会报错或者得到错误答案,因为此时系统不认为你在跨行写表达式

关于str类型的补充

函数 功能
len() 获取字符串的长度,len(str)
title() 将字符串中每个单词的首字母变成大写,str.title()
upper() 将字符串中的字母全部变成大写,str.upper()
lower() 将字符串中的字母全部变成小写,str.lower()
startwith(str1) 字符串是不是以str1开头的,str.startwith(str1)
endwith(str1) 字符串是不是以str1结尾的,str.endwith(str1)

这里字符串和字符串可以直接进行拼接,即str1 + str2就可以了,如果str * int,那么就是str重复int遍

标签:False,python,day2,运算符,字符串,str,print
来源: https://www.cnblogs.com/FlnButFly/p/16513629.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有