1、变量的命名应当符合什么规则?
- 由字母、下划线 和数字 组成,不能以数字开头不能与关键字重名
- 建议不要与内置函数或者类重名,不然会覆盖原始内置函数的功能
- 区分大小写
- 如果 变量名 需要由 二个 或 多个单词 组成时,每个单词都使用小写字母,单词与单词之间使用 _下划线 连接
2、变量的类型有哪些?
整型 (int)
浮点型(float)
布尔型(bool):真 True 假 False
复数型 (complex)
字符串
列表
元组
字典
3、 Python中关键字有哪些?请至少写出10个
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
4、如何查看变量的内存地址、变量的类型以及如何比较两个变量值的大小?
查看变量的内存地址:print(id(变量名))
变量的类型:print(type(变量名))
如何比较两个变量值的大小:==
5、数字类型的字符串(如:"123")与数字类型之间如何相互转换?
数字类型的字符串转换为数字用int、float
数字类型转换为数字类型的字符串str
6、字符串与列表之间如何相互转换?
str -> list
字符串.split("") 按指定分隔符截断,结果就是列表。
或者直接list(字符串),每个字符为列表的成员。
list -> str
"".join(列表) 将列表的值拼成一个字符串。要求列表的每个成员是字符串
直接str(list变量) 将整个列表直接转换为字符串类型,字符串内容与列表一模一样
7、Python中的运算符有哪些种类?
算术、赋值 一般是整数或者符点数的计算,计算结果也是整数或者符点数。
比较、逻辑、成员运算符 结果是布尔值,一般可以作为判断的条件。
8、Python中逻辑运算符有哪些?它们之间有什么区别?
and一假必假两真才为真
or一真必真,两假才为假
not以假乱真
9、有哪些方法可以修改列表中的某个元素呢?
列表[index] = value
列表[start_index:end_index] = value
10、列表中的append和extend的区别?
append是将给定的数据加入到列表中(将一个整体作为一个元素加入列表中)
extend是将序列类型的数据扩充到列表中(将序列类型的每一个数据取出之后,加入到列表中)
11、元组和列表之间如何相互转换?
tuple -> list list()
list -> tuple tuple()
12、获取字典中的某个值,有哪几种方法?有什么区别?
字典[key] key不存在会报错
字典.get(key) key不存在不会报错,返回None,也可指定返回值
13、不可变类型有哪些?可变类型有哪些?
不可变类型str、tuple、int、float、bool
可变类型list、dict
14、Python中是用什么方法来进行输出操作的?它有哪些常用的参数呢?
参数:*args 传多个参数,打印多个值
end print打印的结束符,默认是换行
sep 打印多个值之间的分隔符,默认是空格
15、for和while的区别?
应用场景上:
while 循环执行次数往往不确定
for 循环次数已知,推荐使用
语法 上:
while后面跟条件,为避免死循环,在while内部会有退出循环的条件并使用break跳出;
也会在循环在内部,做些处理能够在循环过程中,使while的条件能达到不成立的时候。
for循环主要是用来遍历列表/字典/元组。
16、局部变量和全局变量有什么区别?
全局变量:在全局作用域(全局命名空间)中定义
局部变量:在局部作用域(局部命名空间)中定义
比如,函数内部定义的变量,就是局部变量,仅函数内部可用。
在py文件中,定义的变量,就是当前py文件内容全局可用。
17、函数参数有哪几种定义方式?
必传参数,默认参数,和个数可变参数。
必传参数:在调用时必须传递,并且要按照位置传参。
默认参数:在定义时直接指定默认值。在调用时,可以传可以不传。
可变参数:定义时通过*args,或者**kwargs表达。函数内部视为元组或者字典 。
在调用的时候,可以传多个值。
比如,print函数就用到了*args。
18、类和对象当中,self是什么?cls又是什么?类中定义方法时,有哪几种形式?
在类当中,self代表对象本身,cls代表类本身。
类中定义方法时,可以定义3种
第一种,实例方法,第一个参数就是self,实例对象可以调用。
第二种,类方法,需要@classmethod装饰,第一个参数是cls,类和实例都可以调用。
第三种,静态方法,需要@staticmethod装饰,没有固定要传的参数,只是普通函数,不过作用域在类的命名空间里。类和实例都可以调用。
19、什么情况下会使用super函数?
一般是在类的继承中使用,当子类重写父类同名方法,并且要调用父类同名方法时,通过super()去调用。
比如子类的初始化方法当中,调用父类的初始化方法,就使用super().__init__方式。
20、编写如下程序使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和
i = 2 # 定义循环变量
result = 0 # 定义一个变量用于保存结果
while i <= 100:
if i % 2 == 0:
result += i
else:
result -= i
i += 1 # 修改循环变量
print("2 - 3 + 4 - 5 + 6 ... + 100之和为{}".format(result))
21、编写如下程序:用户输入考试成绩,当分数高于90(包含90)时打印A;否则如果分数高于80(包含80)时打印B;否则如果当分数高于70(包含)时打印C;否则如果当分数高于60(包含60)时打印D;其他情况就打印E
score = int(input("请输入你的考试成绩:"))
if score >= 90:
print("你成绩为:A")
elif score >= 80:
print("你成绩为:B")
elif score >= 70:
print("你成绩为:C")
elif score >= 60:
print("你成绩为:D")
else:
print("你成绩为:E")
22、假设一年的定期利率为3.52%,需要几年才能让定期存款连本带息的翻一番(例如:需要几年10000才能变成20000)
save_money = float(input("请输入你要存入银行的钱:"))
print("你存了{}元到银行!".format(save_money))
TOTAL_MONEY = save_money * 2 # 定义变量用于保存总钱数
year = 1 # 定义变量用于记录年份
while save_money < TOTAL_MONEY:
save_money *= (1 + 0.0352)
year += 1
print("定期利率为3.52%,需要{}年本金和才能翻一番。".format(year))
23、编写如下程序从键盘获取一个数字,然后计算它的阶乘,例如输入的是3,那么即计算3!的结果,并输出 提示:
a. 1!等于 1
b. 2!等于 1*2
c. 3!等于 1*2*3
d. n!等于 1*2*3*...*n
方法一:
def is_int(int_num):
""" check whether int_num is integer! """
if isinstance(int_num, str): # 判断是否为字符串类型
if int_num.isdigit():
return True
else:
return False
elif isinstance(int_num, int): # 判断是否为整数类型
return True
else:
return False
def count_factorial(one_num):
""" count one_num's fatorial """
result = 1
if one_num < 0:
print("{}为负数,没有阶乘!".format(one_num))
return None
elif one_num in (0, 1):
return 1
else:
for i in range(1, one_num + 1):
result *= i
return result
input_num = input("请输入一个正整数:")
if is_int(input_num):
input_num = int(input_num)
print("{}的阶乘为:{}".format(input_num, count_factorial(input_num)))
else:
print("输入的{}有误,请输入一个正整数!".format(input_num))
方法二:
def jiecheng():
number = int(input("请输入你计算阶乘的数字:"))
i=1
if number < 0:
print("{}! 没有阶乘".format(number))
elif number == 0:
print("{}! 等于1".format(number))
else:
for i in range(1, number + 1):
i *= i
print("{}! 等于{}".format(number, i))