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中是用什么方法来进行输出操作的?它有哪些常用的参数呢?

print      

参数:*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))