python 练习1
问答题 (5分) 注释的种类有哪几种?请写出示例代码
单行注释以 # 开头
# 这是一个注释
print("Hello, World!")
多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello, World!")
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
print("Hello, World!")问答题 (5分) / 与 //、%三者的区别是什么?
“ // ” 表示整数除法,返回整数 比如 7/3 结果为2 “ / ” 表示浮点数除法,返回浮点数 (即小数) 比如 8/2 结果为4.0 “ %” 表示取余数 比如7/4 结果为3 pycharm环境下可直接运行使用 a = 321 b = a//100 c = a//10 % 10 d = a % 10 print("百位数是%d" % b)
问答题 (5分) Python类型与Java类型的区别?
1.Java必须显式声明变量名,而动态类型的Python不需要声明变量。
2.Python虚拟机没有Java强,Java虚拟机是Java的核心,Python的核心是可以很方便地使用c语言函数或c++库。
3.Java是一种静态类型语言,Python是一种动态类型语言
4.Java 的类型要声明,Python 的类型不需要。
5.Python是全动态性的,可以在运行时自己修改自己的代码,Java只能通过变通方法实现。
问答题 (5分) 全局变量与局部变量的区别?
全局变量是整个程序都可访问的变量,生存期从程序开始到程序结束;局部变量存在于模块中(比如某个函数),只有在模块中才可以访问,生存期从模块开始到模块结束。
全局变量分配在全局数据段,在程序开始运行的时候被加载。局部变量则分配在程序的堆栈中。因此,操作系统和编译器可以通过内存分配的位置来知道来区分全局变量和局部变量。
全局变量和局部变量的区别是在存储器中位置不同,具体说,全局变量存储在数据段中,局部变量一般来说在堆栈段
问答题 (5分) 不同的类型之间是否可以计算?\
1)数字型变量之间可以直接计算
。在Python中,两个数字型变量是可以直接进行算数运算的如果变量是bool型,在计算时
o True 对应的数字是1 oFalse对应的数字是0
演练步骤
1.定义整数i=10
2.定义浮点数f=10.5
3.定义布尔型b=True
。在iPython中,使用上述三个变量相互进行算术运算
2)字符串变量之间使用+拼接字符串
。在Python中,字符串之间可以使用+拼接生成新的字符串
In [1]:first_name ="三"
In [2]:last_name="张"
In [3]: first name+last name Out[3]:"三张
3)字符串变量可以和整数使用*重复拼接相同的字符串
In [1]:""*50 Out[1]:
4)数字型变量和字符串之间不能进行其他计算
In [1]:first_name ="zhang
In[2]:x=10
In [3]: x+first name
TypeError:unsupported operand type(s)for+:'intand'str类型错误:+不支持的操作类型:int和str
7、问答题 (5分) 如何关闭 \ 的转换功能?
有两种方法可以在Python中转义反斜杠转义的字符串。首先是使用literal_eval评估字符串。请注意,在此方法中,您需要将字符串用另一层引号引起来。例如:
>>> import ast
>>> a = '"Hello,\\nworld"'
>>> print ast.literal_eval(a)
Hello,
world
另一种方法是使用字符串类中的decode('string_escape')方法。
>>> print "Hello,\\nworld".decode('string_escape')
Hello,
world
8、问答题 (5分) 为何UTF-8会逐渐成为电子邮件、网页等应用中优先采用的编码?
UTF-8就是为了解决向后兼容ASCII码而设计,Unicode中前128个字符,使用与ASCII码相同的二进制值的单个字节进行编码,而且字面与ASCII码的字面一一对应,这使得原来处理ASCII字符的软件无须或只须做少部分修改,即可继续使用。 因此,它逐渐成为电子邮件、网页及其他存储或发送文字优先采用的编码方式
问答题 (5分) ascii、unicode、utf-8、gbk 区别?
1.ASCII --1字节
2.UNICODE --2字节
3.GBK --2字节和1字节混用,表示中文,字符在127以下,用1字节,字符在127以上就是标识汉字。
4.UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
10、问答题 (5分) 如何倒置字符串?
反转方法:1、使用切片法来反转,语法“字符串[::-1]”。2、首先将字符串转换成列表;然后使用reverse()反转列表元素;最后将反转的列表转换会字符串即可。3、使用reduce()函数,语法“reduce(lambda x,y:y+x,字符串)”。
第一种:使用字符串切片
>>> s="abcdef"
>>> result = s[::-1]
>>> print(result)
第二种:使用列表的reverse方法
l = list(s)
l.reverse()
result = "".join(l)
或者
l = list(s)
result = "".join(l[::-1])
第三种:使用reduce
result = reduce(lambda x,y:y+x,s)
第四种:使用递归函数
def func(s):
if len(s) <1:
return s
return func(s[1:])+s[0]
result = func(s)
第五种:使用栈
def func(s):
l = list(s) #模拟全部入栈
result = ""
while len(l)>0:
result += l.pop() #模拟出栈
return result
result = func(s)
第六种:for循环
def func(s):
result = ""
max_index = len(s)-1
for index,value in enumerate(s):
result += s[max_index-index]
return result
result = func(s)
11、问答题 (5分) 如何拼接字符串?
print('第一种方式通过加号形式连接 :' + 'love'+'Python' + '\n')
print('第二种方式通过逗号形式连接 :' + 'love', 'Python' + '\n')
直接连接 中间有无空格均可
print('第三种方式通过直接连接形式连接 (一) :' + 'love''Python' + '\n')
print('第三种方式通过直接连接形式连接 (二) :' + 'love' 'Python' + '\n')
print('第四种方式通过格式化形式连接 :' + '%s %s' % ('love', 'Python') + '\n')
第五种 join方式连接
str_list = ['love', 'Python']
print('第五种方式通过join形式连接 :' + ''.join(str_list) + '\n')
问答题 (5分) 如何判断字符串数据中是否只包含数字?
str.isdecimal()函数
作用:如果字符串中的所有字符都是十进制字符且该字符串至少有一个字符,则返回 True , 否则返回 False 。十进制字符指那些可以用来组成10进制数字的字符,例如 U+0660 ,即阿拉伯字母数字0 。
str.isdigit()函数
作用:如果字符串中的所有字符都是数字,并且至少有一个字符,返回 True ,否则返回 False 。 数字包括十进制字符和需要特殊处理的数字,如兼容性上标数字。这包括了不能用来组成 10 进制数的数字,如 Kharosthi 数。 严格地讲,数字是指属性值为 Numeric_Type=Digit 或 Numeric_Type=Decimal 的字符。
str.isnumeric()函数
如果字符串中至少有一个字符且所有字符均为数值字符则返回 True ,否则返回 False 。 数值字符包括数字字符,以及所有在 Unicode 中设置了数值特性属性的字符,例如 U+2155, VULGAR FRACTION ONE FIFTH。 正式的定义为:数值字符就是具有特征属性值 Numeric_Type=Digit, Numeric_Type=Decimal 或 Numeric_Type=Numeric 的字符。