博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重拾Python学习(一)----------Python基础
阅读量:4126 次
发布时间:2019-05-25

本文共 2207 字,大约阅读时间需要 7 分钟。

本文参考:

第一个python程序

#!/usr/bin/env python3print('hello, world')
$ chmod a+x hello.py$ ./hello.py$ hello, world

print("输出内容") / input("提示符")

python基础

基本数据类型
  • 整数 1-10…十六进制用0x前缀0xff00
  • 浮点数 1.233.14 1.23x10的9次方就是1.23e9 0.000012可以写成1.2e-5
  • 字符串 'abc'"xyz" ,Python用r’‘表示’'内部的字符串默认不转义
  • 布尔值 TrueFalse
  • 空值 None None不能理解为0,因为0是有意义的,而None是一个特殊的空值
  • 变量 a = 1
  • 常量 PI = 3.14159265359 全部大写的变量名表示常量

除法/:结果是浮点数

>>> 9 / 33.0>>> 10 / 33.3333333333333335

除法//,结果是整数

>>> 10 // 33

余数运算%

>>> 10 % 31
字符串

字符串是以Unicode编码

单个字符的编码,ord()获取字符的整数表示,chr()把编码转换为对应的字符

>>> ord('A')65>>> ord('中')20013>>> chr(66)'B'>>> chr(25991)'文'

Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。应当始终坚持使用UTF-8编码对str和bytes进行转换。

bytes类型的数据用带b前缀的单引号或双引号表示x = b'ABC'

要注意区分’ABC’和b’ABC’,前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节,而前者用Unicode表示占2个字节

len()函数计算的是str的字符数,如果换成byteslen()函数就计算字节数:

>>> len('ABC')3>>> len('中文')2>>> len(b'ABC')3>>> len('中文'.encode('utf-8'))6

Python解释器读取源代码为了按UTF-8编码读取,通常在文件开头写上这两行:

#!/usr/bin/env python3# -*- coding: utf-8 -*-

格式化用%实现:

>>> 'Hello, %s' % 'world''Hello, world'>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)'Hi, Michael, you have $1000000.'

%%来表示一个%

>>> 'growth rate: %d %%' % 7'growth rate: 7 %'
list和tuple

list有序集合 l = [] classmates = ['Michael', 'Bob', 'Tracy']

  • -1做索引,直接获取最后一个元素classmates[-1]=‘Tracy’
  • 追加元素到末尾 append('Adam')
  • 元素插入到指定的位置 insert(1, 'Jack')
  • 删除末尾的元素 pop()
  • 删除指定位置的元素 pop(1)

tuple元组, t = () t = (1,) classmates = ('Michael', 'Bob', 'Tracy')

  • 没有append(),insert()这样的方法。
  • tuple不可变,代码更安全。能用tuple代替list就尽量用tuple。
条件、循环判断

if elif else

for x in ...
Python提供一个range()函数,生成一个整数序列range(101)可以生成0-100的整数序列
while break continue

dict和set

dict字典, d={} d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

  • d['Michael'] = 95
  • 通过in判断key是否存在 'Thomas' in d=False
  • 删除key,pop(key),对应的value也会从dict中删除
  • dictkey必须是不可变对象,字符串、整数等都是不可变的

set无重复集合s = set([1, 2, 3])

  • 添加元素add(key)
  • 删除元素remove(key)
不可变对象

对于不可变对象str进行操作

>>> a = 'abc'>>> a.replace('a', 'A')'Abc'>>> a'abc'

虽然字符串有个replace()方法,也确实变出了’Abc’,但变量a最后仍是’abc’,应该怎么理解呢?

我们先把代码改成下面这样:

>>> a = 'abc'>>> b = a.replace('a', 'A')>>> b'Abc'>>> a'abc'

replace方法创建了一个新字符串'Abc'并返回,变量a仍指向原有的字符串'abc',但变量b却指向新字符串'Abc'

tuple虽然是不变对象,但把(1, 2, 3)放入dict或set中可以,(1, [2, 3])不可以。

转载地址:http://nuhpi.baihongyu.com/

你可能感兴趣的文章
Java中的向下与向上转型
查看>>
== 和 equals() 区别
查看>>
基本类型、包装类与String类间的转换
查看>>
解决“cvShowImage”和“cv2”问题
查看>>
Ubuntu18.04安装labelme及使用
查看>>
Ubuntu18.04安装Docker
查看>>
解决“pip找不到命令“问题
查看>>
Ubuntu18.04安装FFMPEG及简单使用
查看>>
Ubuntu双击运行.sh文件
查看>>
解决“ValueError: not enough values to unpack (expected 3, got 2)”问题
查看>>
Ubuntu18.04安装Tensorflow(GPU)及Keras
查看>>
解决“AttributeError: module 'tensorflow' has no attribute 'Session'”问题
查看>>
解决“read error”问题
查看>>
numpy.max中参数axis的取值问题
查看>>
解决“华为云服务器Ubuntu系统升级”问题
查看>>
解决“为conda添加清华镜像源”问题
查看>>
解决“mxnet.base.MXNetError:GPU is not enabled”问题
查看>>
论文阅读“Automatic detection of hardhats worn by construction personnel”
查看>>
解决“cv2.error:Unsupported depth of input image”问题
查看>>
解决“OpenCV窗口手动关闭后堵塞程序运行”问题
查看>>