Python----全局变量、内存管理、数据类型

简介: Python----全局变量、内存管理、数据类型

1、如何跨模块共享全局变量?

在单个程序中跨模块共享信息的规范方法是创建一个特殊模块(通常称为config或cfg)。

只需在应用程序的所有模块中导入配置模块;然后该模块可用作全局名称。

因为每个模块只有一个实例,所以对模块对象所做的任何更改都会在任何地方反映出来。

比如:

在config.py文件中定义一个变量:x = 0

在mod.py文件中导入config

 import config

 config.x = 1

在main.py文件中导入config和mod

 import config

 import mod

 print(config.x)

2、简述python内存管理。

内存管理是有效分配,重新分配和协调内存的过程,以便所有不同的进程都能平稳运行并可以最佳地访问不同的系统资源。

内存管理还涉及清除不再访问的对象的内存。

以引用计数为主,分代回收,标记清除为辅的垃圾回收方式进行内存回收

并且还引入小整数缓冲池和常见简单字符串驻留区的内存缓冲池机制


3、简述pep8的5个规则, 简述python数据类型。

①使用4个空格来缩进代码,不要用tab制表符,也不要tab和空格混用,对于行连接的情况。

②如果可以,注释单独占一行。

③使用文档字符串

④运算符周围和逗号后面使用空格,但是括号里面不加空格:a = f(1,2) + g(3,4)

⑤折行以确保其不会超过79个字符。这有助于小显示器用户阅读,也可以让大显示器能并排显示几个代码、文件。

4、python数据类型:

数字类型(整型、浮点型、复数)、字符串类型、布尔类型、容器类型(列表、元组、字典、集合类型)

5、python中有哪些数据类型是可变数据类型,有哪些数据类型是不可变数据类型。

可变数据类型:在原内存地址上可以修改存储具体内容

列表:list、字典:dict、集合:set

不可变数据类型:在原内存地址上不能修改存储具体内容

数字(int和float)、字符串类型、元组:tuple

6、 有一个文本内容格式如下,每行个字段用空白隔开,假设你不知道它里面的具体内容。

a  a1  a2  a3

b  xx

c  123 yy

请将它们的每一行内容按照如下格式输出:

a
  a1
    a2
      a3
b
  xx
c
  123
     yy
with open("test.txt",'w',encoding="gbk") as fp:
    fp.write("a  a1  a2  a3\nb  xx\nc  123 yy")
with open("test.txt",'r',encoding="gbk")as fp:
    for line in fp:
        line = line.split() #split()以空白进行分割
        print(line)
        i = 0
        for line2 in line:
            # print(line2)
            a = " "*i + line2
            # b = a.replace(" ",' ')
            print(a)
            i += len(line2)


7、有如下python脚本, a.py , 它执行时,可以接受命令行参数。比如:python3 a.py -name sc -age 5 应该如何实现:

# -*- coding: utf-8 -*-
import argparse
parser = argparse.ArgumentParser('description=Show this usage')
parser.add_argument("--name", type=str,  help='display an  name')
parser.add_argument("--age", type=int, help='display an  name')
args = parser.parse_args()
print(args.name,args.age)

在linux中执行:python3 argparse.py --name=sc --age=5

8、如何判断字符串中是否有重复字符串

str2 = input("请输入一个字符串: ")
str3 = set(str2) #字符串转成集合:天生去重
# print(str3)
dict1 = dict()#定义一个空字典
if len(str2) == len(str3):
    print(f"字符串中没有重复的")
else:
    print("字符串中有重复的")
for i in str2:
    dict1[i] = str2.count(i)
print(dict1)
相关文章
|
2天前
|
监控 Python
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
|
2天前
|
缓存 Java Unix
python中内存管理等10个编码习惯
【7月更文挑战第3天】本文涵盖了Python编程中的变量管理、模块导入、命令行参数、内存管理和面向对象设计的10个关键概念。
14 0
python中内存管理等10个编码习惯
|
3天前
|
算法 Java C++
C++和Python在内存管理上的主要区别是什么?
【7月更文挑战第2天】C++和Python在内存管理上的主要区别是什么?
6 1
|
7天前
|
存储 C语言 索引
Python数据类型(1)
【6月更文挑战第28天】Python数据类型(1)。
9 1
|
1天前
|
存储 Python
语音输入,python数据类型,type()用来查看数据类型,数据类型转换,int(x)转整数,float(x)转换为浮点数,str(x),将对象转为字符串,标识符,标识符不允许使用关键字,关键字参考
语音输入,python数据类型,type()用来查看数据类型,数据类型转换,int(x)转整数,float(x)转换为浮点数,str(x),将对象转为字符串,标识符,标识符不允许使用关键字,关键字参考
|
3天前
|
存储 Java 程序员
Python和C++在内存管理方面有什么不同?
【7月更文挑战第2天】Python和C++在内存管理方面有什么不同?
8 0
|
3天前
|
Java C++ 开发者
如何根据项目需求选择使用C++还是Python进行内存管理?
【7月更文挑战第2天】如何根据项目需求选择使用C++还是Python进行内存管理?
11 0
|
3天前
|
算法 Java C++
C++和Python在内存分配策略上的主要区别是什么?
【7月更文挑战第2天】C++和Python在内存分配策略上的主要区别是什么?
4 0
|
3天前
|
Java 程序员 C++
C++和Python在内存分配、释放以及垃圾回收机制上有何不同?
【7月更文挑战第2天】C++和Python在内存分配、释放以及垃圾回收机制上有何不同?
8 0
|
3天前
|
开发者 Python
震撼!深入理解Python数据类型后,我才明白为什么大神都用列表推导式
【7月更文挑战第2天】Python列表推导式是编程效率提升的秘密武器。它以简洁的一行代码替代循环和条件判断,创建新列表。不仅代码量减少、执行效率高,还提升了可读性和可维护性。列表推导式允许抽象复杂逻辑,支持嵌套,使问题解决更专注。掌握这一特性,让你的Python代码更“Pythonic”,向大神级别迈进!**

相关实验场景

更多