首页 > 编程语言 >python基础:数据类型、与用户交互、格式化输出、基本运算符号、常用赋值符号、逻辑运算符号、成员运算符号、身份运算符号、位运算符、运算符优先级

python基础:数据类型、与用户交互、格式化输出、基本运算符号、常用赋值符号、逻辑运算符号、成员运算符号、身份运算符号、位运算符、运算符优先级

时间:2023-02-04 15:22:39浏览次数:43  
标签:False 运算 符号 运算符 print input True

目录

一、数据类型

1、数据类型之布尔值:bool

布尔值就是关于对错的判断,可以在程序中判断是否符合条件,主要用于流程控制中。由True(对)和False(错)组成,python中需要用大写的英文来表示。

python中的数据值都是有布尔值的,其中0、None和'' 、[]、{}、()的布尔值是False,其他的都是True。

存储布尔值的变量名通常都是is开头的(也是一种君子协定)。例如:is_work = True

2、数据类型之元组:tuple

元组可以说是用小括号组成的列表,中间的数据同样是用逗号隔开,数据类型可以是任意的。同时元组也可以索引取值,但是元组中绑定的内存地址不能修改,如果绑定的是一个列表,我们依旧可以修改列表中的数据值。

举例:

example = (11, 22, 33, 44, [12, 23, 34, 'name'])

通过运行代码,我们可以发现修改其他元组内的数据值会直接报错,但是修改列表内的数据值是可以的。

特殊情况:

当元组内只有一个数据值,需要在小括号内的数据值后跟上一个逗号,否则数据类型就不是元组了,会变成你所写的数据对应的类型。

example1 = (11,)	# 是tuple类型
example2 = (11)  # 是int类型

列表和元组的区别

列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。

元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。

元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。

这些区别结实率两者在设计哲学上的不同:

列表可被用于保存多个互相独立对象的数据集合

元组用于描述一个不会改变的事务的多个属性

3、数据类型之集合:set

集合跟数学中的集合定义相似,用大括号组成,中间插入数据值并用逗号隔开,但是不像字典需要kv键值对的形式表示。

举例:

s1 =

集合多用于去重和关系运算,只能是不可变类型,空集合需要用特殊的方法定义,否则会显示成字典类型。

举例:

s1 = {}
s2 = set()
print(type(s1))  # <class 'dict'>
print(type(s2))  # <class 'set'>

二、与用户交互

当我们去银行的时候,我们办理业务,需要跟柜台上的工作人员交流,说明自己的需求才能办理业务。比如工作人员需要问我们要办理什么业务,我们回答取钱,接着就会问我们需要取多少,我们会报上自己的金额。在代码中也有相应的函数体现相应的功能。

1、获取用户输入

input函数

当我们运行input函数时,pycharm的运行窗口中会有光标闪烁,等待我们输入信息。(input输入的数据值会变成字符串类型)

举例:

input('请输入相关信息:')

我们也可以把变量名跟input函数绑定,方便后面继续使用数据。

input函数的括号内部可以加入文本注释,方便他人理解。

2、输出内部信息

print函数

可以把想要打印的数据值、函数名等信息打印出来。括号内部可以用逗号隔开,一次性打印多个数据。

举例:

print('name',11)

扩展:python2与python3中两个关键字的区别

python2中
input方法需要用户自己提前指定数据类型 写什么类型就是什么类型

在python3中所有的数据都会被处理成字符串
在python2中有两个获取用户输入的方式
input()是会返回输入数据值的对应类型的数据值。

raw_input方法与python3中input一致 输入的统一处理成字符串
python2中
print方法有两种使用方式
print 数据值
print(数据值)

3、换行符

python中\n和\r、\r\n都是换行符,但是\n用的较多,我们使用print()打印文本时可以在文本的对应位置输入换行符,打到换行的效果。同时我们也不难发现使用print打印时会自动换行,这是因为print函数中自带换行符,我们也可以更改print的end=''信息来达到不换行输出的目的。(默认情况下end='\n')

举例:

print('使用print打印时会自动换行',end='')
print('使用print打印时会自动换行')
#这两行代码会在同一行输出
print('使用print打印时\n会自动换行')
#会分两行输出

注:输出多个数据时,如果想要输出换行符需要在引号内输入\n并且要用逗号隔开。如果输出字符串,可以放在字符串的引号内。

三、格式化输出

%s和%d

python中有两种格式化输出的占位符——%s和%d。其中%s(字符串)适用于所有数据类型,%d只适用于整数,还有其他类型的占位符。举例:

%r 字符串 (采用repr()的显示)

%c 单个字符

%b 二进制整数

%d 十进制整数

%i 十进制整数

%o 八进制整数

%x 十六进制整数

%e 指数 (基底写为e)

%E 指数 (基底写为E)

%f 浮点数

%F 浮点数,与上相同

%g 指数(e)或浮点数 (根据显示长度)

%G 指数(E)或浮点数 (根据显示长度)

%% 字符"%"

%s使用展示:

1、%s,字符串占位符,使用str()方法转换任何Python对象,包括整数int,浮点数float,如:

print('%s,%s,%s'%('字符串',10,1.0))
结果:'字符串',10,1.0
infor = '你是猪你是猪你是猪你是%s'
infor1 = 'zhu'

print(infor % infor1)
print('你是猪你是猪你是猪你是%s' % '猪')
print(infor % '猪')

infor = '你是%s你是%s你是%s你是%s'

print(infor % ('猪','猪','猪','猪')

输出时可以在输出文本的同时输出占位符,也可以用变量名代替占位符内容和本文内容。但是当一次性输出多个占位符内容是,需要输入相同个数的内容(多了或者少了都会报错),内容输出时要用括号括起来,并用逗号隔开。

%d使用展示:

2、%d,整数(int)占位符,也可以表示浮点数float(只取整数部分),如:
print('代表整数:%d,代表浮点数:%d'%(1,1.9))
结果:代表整数:1,代表浮点数:1.9

3、%f

浮点数(float)占位符,也可以表示整数(int),都是默认为保留小数点后6位,如:

print('代表浮点数:%f,代表整数:%f'%(1.234,1))
结果:代表浮点数:1.234000,代表整数:1.000000

问题:如果我们不想保留小数点后6位,想自主定义保留几位,该怎么写?
解决办法:在%后面加上需要保留的位数个数即可
格式:%.nf,n表示保留n位小数

print('保留2位小数:%.2f'%1.2345)
结果:保留2位小数:1.23

%08d

百分号后的0可以用其他字符表示,同时8 的位置也可以用更多的数值表示。

infor = '你是猪你是猪你是猪你是%08d'

print(infor % '1234567789')
print(infor % '123')

表示的是把输入的数据值输出,如果数据值小于八位,不足八位的地方用0填充,如果超过八位则全部输出。

四、基本运算符号

1、数学运算符号

加:+、减:-、乘:*、除:/、赋值符号=、乘方:**、取余数:%、整除://

通常代码中都会简化运算的表达式:

img

2、比较运算符号

大于:>、小于:<、大于等于:>=、小于等于:<=、等于号:==、不等于:!=。

比较运算符号返回的都是布尔值

img

五、常用赋值符号

python中的“=”号跟数学中的含义不同,“=”的称呼是赋值符号,顾名思义就是把值赋予给某个对象。在python中,“age = 19”中就是把右边的数据值赋值给左边的变量。

1、链式赋值

给多个变量名绑定同一数据值

举例:

#看着很累的方法
name='你好'
name= name1
name1=name2
#简短高效的方法
name=name1=name2='你好'

2、交叉赋值

把两个变量名互相交换数据值

m=999
n=666

change=m
m=n
n=change
#这是比较繁琐的交叉赋值表达方式

m,n=n,m
#这是更加简洁的交叉赋值表达方式

3、解压赋值

当一个列表内有个数据值需要跟多个变量名绑定时,可以使用解压赋值。

解压赋值的时候正常情况下数据值个数和变量名个数需,否则会报错。

s1 = [1,2,3,4,5]
name,name1,name2,name3,name4 = s1

当数据值较多的时候,而我们又用不到中间的没用数据时,可以用*号收取多余数据值。可以取前面的树枝也可以取后面的数值。

s1 = [1,2,3,4,5]

a,*b = s1
*c,d = s1

print(a)
print(b)
print(c)
print(d)

六、逻辑运算符号

1、and

当and所连接的所有条件都成立时,返回True,否则返回False。

print(1<2and2>3) # False
print(1<2and2<3) # True

#and 运算符号输出时会输出最后一项的结果,如果不成立,就会输出不成立的第一项。
#当val = 1 and 3
这种形式的时候,除了要分辨条件是否成立,当我们print结果时,显示的结果会是3(输出最后的条件)
#当val = 0 and 3
这种形式的时候,先分辨条件是否成立,如果不成立就输出0
#当val = 1 and 1<3
这种形式的时候,先分辨条件是否成立,判断成立后,根据最后一项1<3会返回布尔值True

2、or

当or所连接的所有条件中有一个成立,就返回True,否则返回False。

print(1<2or2>3) # True
print(1>2or2>3) # False

#当or运算符号成立时,输出的结果时成立的第一项,如果一个都不成立,就会输出最后一项。
#当val1 = 1 or 3
这种形式的时候,除了要分辨条件是否成立,当我们print结果时,显示的结果会是1(输出第一个成立的条件)
#当val1 = 0 or 1>3和val2 = 1>3 or 0
这种形式的时候,先分辨条件是否成立,可以看出两个都不成立,所以我们可以通过打印发现val1的返回值是False,val2的返回值是0

3、not

返回与原来相反的布尔值。

is_example = True
print(not is_example)

以下假设变量 a 为 10, b为 20:

运算符名称 运算符表达式 描述 示例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

七、成员运算符号

in

用于判断变量名或数据值是否在某个数据值或变量名内部。(例如个体是否在群体内部)

name_list = ['jason', 'kevin', 'oscar', 'jerry']
print('ja' in name_list)  # False
print('jason' in name_list)  # True

其中数据值也可以用变量名代替

not in

用于判断变量名或数据值是不是不在某个数据值或变量名内部。(与in相反)

运算符名称 描述 示例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

注:
1.字符串成员运算最小单位是单个单个的字符
2.列表成员运算最小单位是单个单个的数据值
3.字典成员运算最小单位是键(值不参与)

八、身份运算符号

is

相关知识拓展:

id()函数:可以返回数据值或变量名当前绑定的内存地址

is 运算符用于判断两个用来比较的对象内存地址是否相同。

a= ['jason', 'kevin', 'oscar', 'jerry']
b= ['jason', 'kevin', 'oscar', 'jerry']

print(a == b)
#会返回True
print(a is b)
#会返回False

从这里我们可以得出一个结论:内存地址相同时,两者数据值一定相同,数据值相同时,内存地址不一定相同。

not is

运算符名称 描述 示例
is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

==

判断数据值是否相同,跟数学中的等于号一个意思。

小整数池

当我们把两个不同的变量名绑定相同的数据值时,python解释器会进行优化,pycharm也会进行一定的优化,一些位数较小的数字和一些较短的字符串当被检测到相同时,内存空间中会只用一个地址表示,反之,就会使用两块内存空间中的地址表示

# 整形:较短的可以
a1 = 11
a2 = 11
print(a1 is a2)
#浮点型:较短的可以
a3 = 11.11
a4 = 11.11
print(a3 is a4)
#字符串:较短的可以
a5 = 'jason'
a6 = 'jason'
print(a5 is a6)
#列表:无论长短都不可以
a7 = [1,2,3]
a8 = [1,2,3]
print(a7 is a8)
#字典:无论长短都不可以
a9 = {'name' : 'zzh','age' : '21'}
a10 = {'name' : 'zzh','age' : '21'}
print(a9 is a10)
#元组:较短的可以
a11 = (1,2,3)
a12 = (1,2,3)
print(a11 is a12)
#集合:无论长短都不可以
a13 = {1,2}
a14 = {1,2}
print(a13 is a14)

九、位运算符

运算符名称 描述 示例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111

十、运算符优先级

运算符名称 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,求余数和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
<= < > >= 比较运算符
== != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

十一、作业

1、获取用户输入并打印成下列格式

# 只打印文本
# 方法一:分开打印
print('------------ info of Jason ----------- ')
print('Name : Jason ')
print('Age : 18 ')
print('sex : male ')
print('Job : Teacher ')
print('------------- end -----------------')

# 方法二:用换行符
print(
    '------------ info of Jason -----------\n Name : Jason\n Age : 18\n sex: male\n Job : Teacher\n ------------- end -----------------')

# 格式化输出

# 方法一

name = input('姓名:')
age = input('年龄:')
sex = input('性别:')
job = input('工作:')

print('------------ info of %s ----------- ' % (name))
print('Name : %s ' % (name))
print('Age : %s ' % (age))
print('sex: %s ' % (sex))
print('Job : %s ' % (job))
print('------------- end -----------------')

# 方法二


name = input('姓名:')
age = input('年龄:')
gender = input('性别:')
job = input('工作:')

information = (
    '------------ info of %s -----------\n Name : %s\n Age : %s\n sex : %s\n Job : %s\n ------------- end -----------------')

print(information % (name, name, age, sex, job))

2、准备说出下列变量名v绑定的结果 v1 = 1 or 3 结果是1
v2 = 1 and 3 结果是3
v3 = 0 and 2 and 1 结果是0
v4 = 0 and 2 or 1 结果是1
v5 = 0 and 2 or 1 or 4 结果是1
v6 = 0 or False and 1 结果是False

标签:False,运算,符号,运算符,print,input,True
From: https://www.cnblogs.com/wxlxl/p/17091550.html

相关文章

  • 剑指offer——Day22 位运算(中等)
    Day222023.2.4位运算(中等)剑指offer56-Ⅰ.数组中数字出现的次数自己实现就直接结合set进行遍历,然后出现重复就从set里面删除掉,最后就能得到只包含出现过一次的set......
  • C语言学习 指针的运算和比较
    1#include<stdio.h>2#include<io_utils.h>34intmain(){5{6inta=2;7int*p=&a;89PRINT_INT(p+1);10PRINT_INT(......
  • 费解的开关(位运算+递推)
    题目描述:你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产......
  • 运算符重载
    基本概念:重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后面要定义的运算符号共同组成。同其他函数一样,重载的运算符函数也包含返回类型、参数列表以......
  • java运算符
    1.概述运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。1)算术运算符2)赋值运算符3)关系运算符[比较运算符]4)逻辑运算符5)位运算符[需要二进制基础]......
  • 三元运算符
    三元运算符packageoperator;publicclassdemo06{publicstaticvoidmain(String[]args){//三元运算符x?a:b//如果x=true,则结果为a,否......
  • 扩展赋值运算符
    扩展赋值运算符packageoperator;publicclassdemo05{publicstaticvoidmain(String[]args){inta=10;intb=20;a+=b;//a......
  • 逻辑运算符&&和||和!
    逻辑运算符逻辑运算符&&,||,!packageoperator;publicclassdemo03{publicstaticvoidmain(String[]args){//逻辑运算符,与(and)、或(or)、非(取反)......
  • 位运算符
    位运算符packageoperator;publicclassdemo04{publicstaticvoidmain(String[]args){/*位运算符与,或,非&|~A=00111100B=......
  • 位运算符<<和>>计算方法详细说明
    左移和右移详细说明1、<<(左移)1.运算规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。2.语法格式:需要移位的数字<<移位的次数例......