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)
相关文章
|
21天前
|
Python
Python 中一些常见的数据类型
Python 中一些常见的数据类型
70 8
|
18天前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
30 3
|
26天前
|
Python
Python中不同数据类型之间如何进行转换?
Python中不同数据类型之间如何进行转换?
25 6
|
26天前
|
存储 开发者 Python
Python 的数据类型
Python 的数据类型
32 6
|
24天前
|
算法 Java 程序员
Python内存管理机制深度剖析####
本文将深入浅出地探讨Python中的内存管理机制,特别是其核心组件——垃圾收集器(Garbage Collector, GC)的工作原理。不同于传统的摘要概述,我们将通过一个虚拟的故事线,跟随“内存块”小M的一生,从诞生、使用到最终被回收的过程,来揭示Python是如何处理对象生命周期,确保高效利用系统资源的。 ####
23 1
|
1月前
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc
|
2月前
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
66 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
|
1月前
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc
|
1月前
|
监控 Java API
Python是如何实现内存管理的
Python是如何实现内存管理的
|
1月前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
27 0