1-1.已知 x=3, 则其后的语句:x='3'是错误的。F
其中第一个x引用的3是int类型,第二个x引用的类型是 str
输出结果:
<class 'int'>3<class 'str'>
1-2.已知 x=3, 则执行“ x=7”后,id(x)的返回值与原来没有变化。F
在Python中变量引用对象,而对象可以关联多个变量,变量在被赋值才能被创建,变量没有类型,而对象有。
函数id()查询引用对象的内存地址
1-3.下面程序输入是30 50,输出是80。F
函数input().split()代表输入并且默认以空格分隔,所以在存储这个字符串的时候就会
这里涉及到了int的用法
补充int()的用法:
总结:int()对纯数字的作用是取整,进行进制转换必须用字符串类型,而且字符串中的数字为整数,base为2时进行的是将前面的二进制转换为十进制,其余base则是将前面的字符串转换成对应的进制数。
补充:
说明:以‘c’为分隔符,将str分为两部分
1-4.下面程序的输出是5。F
Python中的关键字不可以做标识符
1-5.当输入是:45,8 时,下面程序的输出结果是37。F
关于int()的用法参考上面的补充
正确代码:
1-6.当输入是10.0时,下面程序的输出是f(10.0) = 0.1。F
正确方法:
input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容可以包含任何字符。
int()不能将字符串类型的含有小数点的数字直接转化为整数类型,所以需要先将x转化为浮点型,然后再进行取整。
以上的布尔值均为False
此时是字符串的布尔值,不为空,就是true
bin()返回一个整型的二进制形式
base=9,这个暂时未弄明白
1-13.'age'+23不是正确的表达式。 T
字符串类型和整型不能整合在一起,类型不统一
Python不支持字符类型,单个字符也是字符串类型。
2-3. Python 语句print(type(1/2))的输出结果是______________。
C.<class 'float'>
在Python中的分数属于浮点型数据,而不是像java中直接按照int类型输出。
B.<class ‘float’>
在运算的优先级中,bool->int->float->complex
D.21
print()函数中进行直接的算数运算,都会转化为十进制。
D.A
关于chr()函数的用法:
def chr(__i: int) -> str Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.
返回整数值代表的Unicode
2-7.关于Python中的复数,下列说法错误的是______C__ 。
A.表示复数的语法是real + imag j
B.实部和虚部都是浮点数
C.虚部必须后缀j, 且必须是小写
D.方法conjugate 返回复数的共轭复数
2-9.关于Python字符串,下列说法错误的是___B________。
A.字符即长度为1的字符串
B.字符串以\0标志字符串的结束
C.既可以用单引号,也可以用双引号创建字符串
D.在三引号字符串中可以包含换行回车等特殊字符
字符串没有结束标志
关于字符串单引号、双引号、三引号的用法:
这里常规的用法不做赘述,关于特殊情况。
如果使用单引号字符串中出现单引号:
要么直接使用双引号,要么使用转义符
多行输入的换行问题
使用换行符或者三引号。
2-18.返回数字x的绝对值或复数x的模的函数是(C )。
2-19.( )函数用来对参数进行类型检查。
2-21.如下power函数的使用,哪个说法是错误的? B
首先pow()函数:pow(x,y[,z]),(x**y)%z
关于取余的算法,按照B中的算法是-8%5=-1*5-3,所以余数是-3,但是在Python2.6中-8%5=2,这里的算法是-8%5=-2*5+2,按照现在计算机算法的共同标准,应该让商尽可能的小。
2-26.欲输出0.333,如下哪项对数据进行格式化的方法是错误的( )?
Python的格式化输出:
整数的输出:
%o 八进制
%d 十进制
%x 十六进制
浮点数的输出
(1).格式化输出:
(2).字符串输出:
常用转义字符:
format的用法
相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’
提示:如果用PYTHON语言实现,不必设计Complex类,可以使用内置的复数数据类型,完成复数的算术运算。
输入格式:
输出格式:
输入样例:
输出样例:
关于map()函数:map()是Python的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
根据输入的半径值,计算球的体积。
提示:PI=3.1415926。
输入格式:
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
输出格式:
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
提示:PYTHON3输出三位小数的语句:print("%.3f" % (v)) ;其中,v为变量。
输入样例:
输出样例:
E_star由于在上次考试中取得了很好的成绩他开始骄傲起来,此时von看不下去了,于是他把E_star叫来说,最近一道A+B编程题目不会,想让E_star来帮他解答,E_star二话没说结一口答应了,等到von把题目发给E_star的时候他傻眼了。这下,知道骄傲的后果了吧。
输入格式:
题目有多组数据,处理到文件结束。输入的第一行包含一个数T,代表测试组数;
接下来有T行,每行有两个整数A和B,中间用空格分隔。
提示:整数可能超出long类型的取值范围。B不为0。
输出格式:
对于每一组数据,输出5行数据,分别为2个数的和、差、积、商(整除)、余数。形式为:
A+B=C,其中C是A与B的加和。
A-B=D,其中D是A与B的差。
A*B=E,其中E是A与B的乘积。
A/B=F,其中F是A与B的商(整数)。
A%B=G,其中G是A除以B的余数。
输入正整数(1<=n<=7),输出指定图形。
输入格式:
输入字符ch和正整数n。中间有一个空格。
输出格式:
输出有n行的图形。
输入样例1:
输出样例1:
计算序列 1 + 1/3 + 1/5 + ... 的前N项近似和。
Python提示:用math模块的ceil函数。 ceil函数帮助信息:Return the ceiling of x as an Integral. This is the smallest integer >= x.
ceil函数使用举例:
输入格式:
在一行中给出一个正整数N。
输出格式:
在一行中按照“sum≈S”的格式输出近似和S。S是大于序列和的最小整数。
输入样例:
输出样例:
对两个正整数m和n(m≤n)编写程序,计算序列近似和。近似和定义为小于序列和的最大整数。
Python实现提示:用math模块的floor函数。floor函数帮助信息:Return the floor of x as an Integral. This is the largest integer <= x.
floor函数使用举例:
输入格式:
在一行中给出两个正整数m和n(m≤n),其间以空格分开。
输出格式:
在一行中按照“sum≈S”的格式输出近似和S。
输入样例:
输出样例:
在这里给出相应的输出。例如:
求两个整数之和。从键盘输入2个整数,然后它们的和,按规定格式输出。
输入格式:
从键盘输入2个正整数A和B,中间有1个空格。
输出格式:
计算它们的和,按如下形式输出:A+B=C。
输入样例:
输出样例:
给出三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数。
输入格式:
输入只有三个正整数a、b、c。数据之间用一个空格隔开。
输出格式:
输出一行,包括三个的和、乘积、平均数。 数据之间用一个空格隔开,其中平均数保留小数后面两位。
输入样例:
输出样例:
糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱?
输入格式:
输入爸爸给小瑜的钱n元,n为整数。
输出格式:
小瑜最多能买回的糖块数以及剩下的钱(单位为:角),用1个空格分隔。
输入样例:
输出样例:
1-1.下面程序的运行结果是4。F
在Python中是不能用++和--实现自增和自减的,++和--是用来判断正负的:
1-3.表达式3 and 0 and "hello"的值是False。F
关于and的用法:
当a为True,b为True,返回b
当a为True,b为False,返回b
当a为False,b为True,返回a
当a为False,b为False,返回a
所以返回结果为0
and和or符合它们的逻辑用法,and“一假全加,全真为真”,所以在第一个变量为真的情况下,检查第二个,第二个为不论为什么都返回第二个变量,若是第一个变量都为false,直接返回第一个。
or符合“一真就真,全假才假”,若是第一个为真,就直接返回第一个,不会往下找,第一个为假,那么就返回第二个。
1-4.下面程序的输出是 [3, 2, 3, 4, 5]。
在Python中给变量赋值实际上是让变量指向对象,不是变量之间的运算
1-5.z已赋值,x=(y=z+1) 语句是错误语句。T
语句:x=(y=z+1) 非法,x被赋值y=z+1,但是这个y=z+1不返回任何值,这是非法的。
语句:x=y=z+1,先将z+1赋值给y,然后再将y赋值给x
1-6.表达式-2**4等于16。F
1-7.表达式:"34" in "1234"==True 返回值是True。F
1-8.运算符“%” 可以对浮点数进行求余数操作。T
1-9.一个数字“5”不是合法的 Python 表达式。F
1-10.如果变量出现在赋值运算符或复合赋值运算符(如+=、*=等)的左边则表示创建变量或修改变量的值。T
1-11.关于同一性测试运算符is,如果两个对象是同一个,两者具有相同的内存地址.F
过于is和==的区分:
is是同一性判断,也就是两个变量是否指向同一个对象,==是等值判断,用于判断两个变量引用对象的值是否一样,关于为什么对象的值相同但是内存地址不同:
实际上,只有在数值型和字符串型的情况下,a is b才是true,其余的四种类型都是false
同时在数字类型中,Python为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。而Python对于小整数的定义是[-5,257),只有在-5到256之间他们的id才会相等,超过了这个范围就不行了,同样的道理,字符串对象也有一个类似的缓冲池,超过区间范围内自然就不会相等了。
总的来说,之后字符串和数字类型,并且在通用的对象池中的情况下,a is b才是true,取余均为false。
1-12.逻辑运算and、or、not的运算结果一定是True或者False。F
关于bool逻辑表达式,许多Python关键字的使用都能构造出来,对于说法“逻辑运算符用于操作bool类型的表达式,执行结果也是bool类型。”这种说法是错误的。
事实上,Python逻辑运算符可用于任何类型的表达式,表达式为bool类型只是充分不必要条件;同时,逻辑运算结果可以为任意类型,不一定为bool类型(注意:用于运算的表达式及其结果的布尔逻辑值一定为false和true)
以下是例子:
对于两个浮点数的比较:
也就是说以上两个浮点数并不相同,浮点数不能通过==和!=来直接判断,因为浮点数有精度,而且不能精确的表达数轴上的每一个点,只能表示部分的点,而且是不均匀的,如果要比较来自浮点数,需要借助一定的误差值。
1-14.在Python中的关系运算符可以连续使用。如:3<a<4. T
在Python中,条件表达式不允许使用赋值运算符“=”,避免了其他语言中误将关系运算符“==”写作赋值运算符“=”带来的麻烦,例如,下面的代码在条件表达式中使用赋值运算符“=”将抛出异常,提示语法错误。
2-1.表达式1+2*3.14>0的结果类型是:____bool。
python中比较运算符的结果是bool值。
python中有逻辑运算符、条件运算符、算术运算符、赋值运算符、比较运算符,其中比较运算符返回bool值,逻辑运算符则可以返回任何类型的值。
2-2.执行下面程序产生的结果是______相等___。
在数字类型中,两个值数值相等在==判断中就是true,但是注意条件,见判断题。
因为//是整除,所以返回的值为整数
因为在优先级中,bool->int->float->complex(从左往右优先级依次增大)
因为两个变量的类型不同,不能相加。
2-6.从math库导入sqrt函数之后,Python 表达式 sqrt(4)*sqrt(9)的值为____6.0____。
关于sqrt()函数:
sqrt()函数不能直接访问,需要导入math模板,通过静态对象调用该方法。
返回值:返回数字x的平方根。
2-9.位运算符只能用于(整数 )。
关于位运算:
1.前言:在Python中,位运算符包括位与(&)、位或(|)、位求反(~)、位异或(^)、左移位(<<)和右移位(>>)。
2.运算方法与规则:位运算符只能适用于整数,其总体运算规则为:首先把整数转换为二进制表示形式,按最低位对齐,短的高位补0,然后进行位运算,最后把得到的二进制转换为十进制数。
3.举例说明:
以13&17为例,首先把13转换为二进制数1101,把17转换为10001,然后按最低位对齐,13的二进制形式高位补0得到01101,按位进行与运算:
位与运算符运算规则:0&0=0&1=1&0=0,1&1=1
位或运算符运算规则:0|1=1|0=1|1=1,0|0=0
位求反运算符运算规则:0=1,1=0,对于整数x有~x=-(x+1)
位异或运算符运算规则:00=11=0,01=10=1
左移位运算符运算规则:原来的所有位左移,最低位补0,相当于乘以2
右移位运算符运算规则:原来的所有位右移,最低位丢弃,最高位使用符号位填充,相当于整除2
01101 <====13
10001 <====17
00001 ====>1
如果要计算13|17,则计算方法如下:
01101 <====13
10001 <====17
11101 ====>29
如果要计算13^17,则计算方法如下:
01101 <====13
10001 <====17
11100 ====>28
以13<<1为例,首先将13转换为二进制形式1101,然后左移1位,最低位补0,得11010,转换为十进制数为26,相当于13*2。
以13>>1为例,首先将13转换为二进制形式1101,然后右移1位,最低位丢弃,最高位使用符号位0补充,得110,转换为十进制数为6,相当于13//2。
2-14.表达式3 < 5 <2 的计算结果是:(False )
这个表达式的意思是3 < 5 and 5 <2
2-17.成员运算符in,不可以测试下面的哪些类型中是否包含一个数据对象。 答案:整数
2-18.关于 pass语句,以下哪个描述是正确的?
pass 不做任何事情,一般用做占位语句
A.算术减法
B.字符串格式化(左对齐)
C.集合差集(找出前一个集合不包括后一个集合的数值)
D.相反数
3-3.逻辑运算符常用来连接条件表达式,(and )和( or)具有逻辑短路(惰性求值)的特点,当连接多个表达式时只计算必须要计算的值。
逻辑运算符and、or、not常用来连接条件表达式构成更加复杂的条件表达式,并且and和or具有惰性求值或者逻辑短路的特点,即当连接多个表达式时只计算必须要计算的值。在编写复杂条件表达式时可以充分利用这个特点,合理安排不同条件的先后顺序,在一定程度上可以提高代码的运行速度。另外要注意的是,运算符and和or并不一定会返回True或False,而是得到最后一个被计算的表达式的值,但是运算符not一定会返回True或False。
round()函数:
语法:round(x[,n])
其中x是数值表达式,n是保留的小数位数
返回值:返回浮点数的四舍五入值
关于四舍五入的拓展:
4-11.表达式 ((2>=2) or (2<2)) and 2 的值为2