重拾Python学习(一)----------Python基础

本文参考:廖雪峰的官方网站:https://www.liaoxuefeng.com

第一个python程序

#!/usr/bin/env python3

print('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 / 3
3.0
>>> 10 / 3
3.3333333333333335

除法//,结果是整数

>>> 10 // 3
3

余数运算%

>>> 10 % 3
1
字符串

字符串是以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])不可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值