我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python从入门到精通(DAY 1)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python从入门到精通(DAY 1)

1、要点

(1) 在C语言中没有字符串,只有字符,

在python中的字符串hello,在C语言中是以字符数组在内存存放['h','e','l','l','o'],如果对字符串修改,则是在内存中新开辟了一段空间进行存放。

字符串特性:一旦修改,需要重新创建。

例: "hello" + "ni" + "hao" 内存中:['h','e','l','l','o'] + ['n','i'] + ['h','a','o']

万恶的“+”,“+”号越多,在内存中多次重复创建,浪费空间。

C语言需要手动回收,而python,C#等高级语言自带虚拟机会进行GC垃圾回收没有被调用的内存访问空间。

(2) python字符串的格式化(占位符)可以节省内存空间,有如下二种方式,例:

说明:第二种format方式的效果会更好,性能更好,其实变量a的值没有变,在格式化赋值时会在内存中新开辟空间存放。在python2.7和python3.4中测试结果相同


 >>> a = 'i am %s,age is %d'
>>> a % ('wangkai',33)
'i am wangkai,age is 33'
>>> print(a)
i am %s,age is %d

>>> a = 'i am {0},age is {1}' 
>>> a.format('wangkai',33) 
'i am wangkai,age is 33'
>>> print(a)
i am {0},age is {1}

(3) 在python中会生成一个缓存池来节省内存空间,主要存放经常用到的字符串及数字,所以在一定范围内对变量赋同样的值,他们的id值是一样的,当超出这个池的时候,id值则会不同

分别在python2.7和python3.4版本中进行测试,测试结果如下:(经测试在python2.7和python3.4中效果一样)

针对字符串,无限制


>>> a = 'asdfsafsafasfsafasdfasfasfasf'
>>> b = 'asdfsafsafasfsafasdfasfasfasf'
>>> id(a),id(b)
(140704388394128, 140704388394128)
>>> a = 'ni'
>>> b = 'ni'
>>> id(a),id(b)
(140704388417416, 140704388417416)

针对数字,范围:小于-5,大于256


>>> a = -5
>>> b = -5
>>> id(a),id(b)
(8745920, 8745920)

>>> a = -6
>>> b = -6
>>> id(a),id(b)
(140718131946128, 140718131946320)

>>> aa=256
>>> bb=256
>>> id(aa),id(bb)
(8754272, 8754272)

>>> aa = 257   
>>> bb = 257    
>>> id(aa),id(bb)
(19083048, 18637656)

具体python源码对数字的定义如下:

查看图片

(4) python内部执行过程:

查看图片

(5) print说明:

Python 2中的print语句被Python 3中的print()函数取代,这意味着在Python 3中必须用括号将需要输出的对象括起来。

特别说明:经测试在python2.6、python2.7,print作为语句,但已支持括号方式,例:a = 1 print a print(a)均可;

在python3.4版本中,print作为函数,只支持括号方式。

建议:为了代码在python2和3上的兼容性,请直接使用print函数括号方式。

2、编码转换

一般硬盘存储为utf-8,读入内存中为unicode,二者如何转换

a = '你好' 'xe4xbdxa0xe5xa5xbd' <type 'str'>

b = u'你好' u'u4f60u597d' <type 'unicode'>

a.decode('utf-8') u'u4f60u597d' (utf-8格式解码为unicode)

b.encode('utf-8') 'xe4xbdxa0xe5xa5xbd' (unicode格式加密为utf-8)

注:在python2.7版本中需要如上转换,在脚本中如要显示中文,

只要在文件开头加入 # _*_ coding: UTF-8 _*_ 或者 #coding=utf-8 就行了

在python3.4以后版本,无需转换

3、调用系统命令,并存入变量:

1.import os

a = os.system('df -Th')

b = os.popen('df -Th','r') 返回一个文件对象

2.import commands

c = commands.getoutput('df -Th') 返回一个字符串

4、sys调用

import sys

sys.exit

print sys.argv

sys.path

5、导入模板方法:

1.import sys [as newname]

多次重复使用import语句时,不会重新加载被指定的模块,只是把对该模块的内存地址给引用到本地变量环境。

2.from sys import argv或(*)

3.reload()

reload会重新加载已加载的模块,但原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块;reload后还是用原来的内存地址;不能支持from。。import。。格式的模块进行重新加载。

建议使用第一种,第二种导入的对象或变量会与当前的变量会冲突。

6、用户交互:

在python2.7版本中

raw_input:交互输入内容转化为字符串;

input:交互输入内容不进行转化;

在python3.4版本中只有input,想要获取数字,需要进行int转变。

举例:


#_*_ coding:utf-8 _*_

info = 'This var will be printed out ...'
name = raw_input('Please input your name:')
age = int(raw_input('age:'))  
#age = input('age:')
job = raw_input('Job:')
salary = input('Salary:')
print type(age)

print '''
Personal information of %s:
     Name: %s 
     Age : %d
     Job : %s
    Salary: %d
--------------------------
''' % (name,name, age,job,salary)

7、用户输入内容隐藏:

输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:


>>> import getpass
>>> pwd = getpass.getpass("please input the passwd:")
please input the passwd:
>>> print(pwd)
asdfasdfa

8、文件操作:

python2.7版本中可以用file和open打开文件, python3.4版本中只有open

f = open('file_name','r')

g = file('file_name','r')

其中打开模式有'r','w,','a','b','+'

w:替换重写 a:追加

b:二进制文件,主要用于跨平台,来解决window和linux的回车换行区别

+:用于同时读写

* 一般会对文件读到的第一行去掉末尾的换行符 f.readline().strip('n')

* xreadlines:针对大文件,一行一行读,默认是把全文件读入内存。

* r+ :读写,默认从文件尾写入,可以由seek跳到指定位置,然后替换文件内容。

初始文件aa.txt

kevin:123:1
wang:22:2
kai:311:3

对python2.7和python3.4测试结果一样。


# _*_ coding: UTF-8 _*_

import sys,os
file = sys.argv[1]

f = open(file,'r+')
line_list = f.readlines()

new_list = []
for line in line_list:
  #去掉行尾的换行符
  line = line.strip('n')
  #对行信息按分隔符进行分列
  value_list = line.split(':')

  #获取最后一字段并数字化
  last_value = int(value_list[-1])
  #对最后一字段进行数字计算
  last_value *= 13

  value_list[-1] = str(last_value)
  #将列表转变为字符串
  new_str = ':'.join(value_list)
  #将循环的改变后的行追加到新的列表
  new_list.append(new_str)
'''
  ######第一种方法按行追加到文件#####
  #按修改后的行追加到文件中
  #f.writelines(new_str + 'n')
'''
'''
#####第二种方法将所有行统一追加到文件#####
#将所有修改后的新列表转化为字符串
my_str = 'n'.join(new_list)
#将指标移到行首
f.seek(0)
#将写回到文件
f.write(my_str + 'n')
'''
f.close()

9、类型转变:

Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数。

函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式(如果没有等价的
语法,则会发生SyntaxError 异常) 某对象没有适于人阅读的解释形式的话, str() 会返回与repr()等同的值。很多类型,诸如数值或链表、字典这样的结构,针对各函数都有着统一的解读方式。字符串和浮点数,有着独特的解读方式。
Some examples:

下面有些例子


>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'"
>>> str(1.0/7.0)
'0.142857142857'
>>> repr(1.0/7.0)
'0.14285714285714285'

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python从入门到精通(DAY 1)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python从入门到精通(DAY 1)

1、要点(1) 在C语言中没有字符串,只有字符,在python中的字符串hello,在C语言中是以字符数组在内存存放['h','e','l','l','o'],如果对字符串修改,则是在内存中新开辟了一段空间进行存放。字符串特性:一旦修改,需
2022-06-04

python从入门到精通(DAY 2)

1、字典复制:dict = {'name':'wang', 'sex':'m', 'age':34, 'job':'it'}info = dict ##别名 (二个字典指向内存的同一地址空间)info1 = dict.copy()
2022-06-04

python从入门到精通(DAY 3)

要求:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定针对此实例写了有二种类型的脚本,略有不同,具体如下: 帐号文件account.txt内容如下: sam 123 david 12 kevin 123 lin 12
2022-06-04

1.python入门到精通

1.1跨平台windows、Mac OS、Linux、WWW。1.2Python的应用范围操作系统3D动画WEB云计算企业应用1.3可以学到什么?Python3的所有常用语法面向对象编程思维运用模块进行编程游戏编程计算机仿真从IDLE启动P
2023-01-31

GNS3从入门到精通

GNS3是一款优秀的具有图形化界面的模拟器。可以运行在多平台上(Windows,Linux,MacOS等)。其最大的特点就是搭建拓扑极其简单,且支持保存startup-config,供下次实验中继续导入使用,而且所有设备导入时间在1分钟内即
2023-01-31

Python GUI编程:从入门到精通

Python GUI编程入门到精通,掌握Python GUI编程基础知识,学习如何使用Python创建图形用户界面,探索Python GUI编程的各种技巧和窍门,成为一名熟练的Python GUI程序员。
Python GUI编程:从入门到精通
2024-02-14

J2EE 5从入门到精通

J2EE 5从入门到精通Java 2 Enterprise Edition (J2EE)入门学习指南: Detail:J2EE 5从入门到精通[@more@]
2023-06-03

python课程(68G)从入门到精通全

对比过很多python学习视频,很多老师都是全程读ppt,非常乏味,这个视频也是我买的,就业班上课实录,讲的非常有意思,生动形象,本人也是看完之后顺利找到了第一份实习,在此特地分享给大家。不过有什么问题的话还可以加我微信好友data_eco
2023-01-31

2.Python入门到精通

改进我们的小游戏概有以下几个方面需要改进:猜错的时候程序应该给点提示,例如告诉用户输入的值是大了还是小了。每运行一次程序只能猜一次,应该提供多次机会给用户猜测。每次运行程序,答案可以是随机的。因为程序答案固定,容易导致答案外泄。条件分支第一
2023-01-31

wpf从入门到精通教程

WPF(Windows Presentation Foundation)是微软开发的一种基于.NET Framework的桌面应用程序开发框架。它提供了丰富的用户界面元素、数据绑定和动画等功能,使得开发者可以轻松地创建高质量的桌面应用程序。
2023-10-27

学习Golang:从入门到精通

在当今信息技术发展迅速的时代背景下,编程语言的选择变得越来越重要。Golang作为一种由Google开发的现代化编程语言,在其诞生的短短几年里便迅速崛起并受到了广泛关注。Golang以其简洁高效的特性,被广泛应用于云计算、网络编程、大数据
学习Golang:从入门到精通
2024-02-24

Python PyTorch:机器学习从入门到精通

本文将为读者提供有关PyTorch的基础知识,包括张量、神经网络、优化器和损失函数。此外,本文还将提供一些简单的代码示例,以便读者更好地理解这些概念。
Python PyTorch:机器学习从入门到精通
2024-02-02

Python HTTP请求实战:从入门到精通

Python HTTP请求实战教程,从入门到精通,涵盖了HTTP请求的基础知识,以及如何使用Python发送HTTP请求,包括GET、POST、PUT、DELETE等请求方法,以及如何处理HTTP响应。
Python HTTP请求实战:从入门到精通
2024-02-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录