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)
相关文章
|
3天前
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc
|
28天前
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
54 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
|
7天前
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc
|
8天前
|
监控 Java API
Python是如何实现内存管理的
Python是如何实现内存管理的
|
1月前
|
编译器 数据安全/隐私保护 Python
Python--基本数据类型
【10月更文挑战第4天】
|
1月前
|
存储 Python
python数据类型、debug工具(一)
python数据类型、debug工具(一)
|
1月前
|
Python
[oeasy]python036_数据类型有什么用_type_类型_int_str_查看帮助
本文回顾了Python中`ord()`和`chr()`函数的使用方法,强调了这两个函数互为逆运算:`ord()`通过字符找到对应的序号,`chr()`则通过序号找到对应的字符。文章详细解释了函数参数类型的重要性,即`ord()`需要字符串类型参数,而`chr()`需要整数类型参数。若参数类型错误,则会引发`TypeError`。此外,还介绍了如何使用`type()`函数查询参数类型,并通过示例展示了如何正确使用`ord()`和`chr()`进行转换。最后,强调了在函数调用时正确传递参数类型的重要性。
20 3
|
2月前
|
存储 Java C++
30天拿下Python之数据类型
30天拿下Python之数据类型
33 4
|
26天前
|
存储 程序员 Python
Python编程入门:探索变量和数据类型
【10月更文挑战第8天】本文是针对初学者的Python编程入门指南,重点介绍Python中变量的定义和使用以及不同的数据类型。我们将通过实例来理解基本概念,并展示如何在Python程序中应用这些知识。文章旨在帮助初学者建立扎实的基础,使他们能够更自信地编写Python代码。
|
2月前
|
算法 程序员 Python
程序员必看!Python复杂度分析全攻略,让你的算法设计既快又省内存!
在编程领域,Python以简洁的语法和强大的库支持成为众多程序员的首选语言。然而,性能优化仍是挑战。本文将带你深入了解Python算法的复杂度分析,从时间与空间复杂度入手,分享四大最佳实践:选择合适算法、优化实现、利用Python特性减少空间消耗及定期评估调整,助你写出高效且节省内存的代码,轻松应对各种编程挑战。
38 1

热门文章

最新文章