python基础知识——适合零基础

Hello World

print("Hello World!")

>>> Hello World!

2、变量

2.1 命名

  • 变量名:包含字母/数字/下划线,只能字母和下划线开头,数字不能打头。e.g. tensor_1是正确的,1_tensor是错误的
  • 不能包含空格 e.g. tensor 1是错误的
  • 避开python的关键字和函数名用作变量名,也不要用python中有特殊用途的单词,e.g. print
  • 尽量简洁又有描述性,e.g. student_name就比s_n要更好
  • 2.2 变量赋值
  • 不需要类型声明
  • 每个变量都必须赋值,赋值以后变量才会被创建
# 2.1 命名
# 2.2 变量赋值
number = 10 # 整型变量
distance = 10.0 # 浮点型变量
name = 'sb' # 字符串
print(number)
print(distance)
print(name)

>>>
10
10.0
sb

  • 2.3 多个变量赋值
  • 同时为多个变量赋值
  • 为多个对象指定多个变量
# 2.3.1 同时为多个变量赋值
a = b = c = 1
print(a,b,c)

>>>1 1 1

# 2.3.2 为多个对象指定多个变量
a, b, c = 1, 1.0, 'sb'
print(a,b,c)

>>>
1
1.0
sb

3. 字符串

  • 3.1 修改字符串的大小写
  • 3.2 拼接字符串
  • 3.3 制表符和换行符
  • 3.4 删除空白
  • 3.5 编码问题
  • 3.6 格式化输出
  • 3.7 索引
# 3.1 修改字符串的大小写
# 3.1.1 让首字母大写 title()函数
name = 'clear love'
print(name.title())

>>>Clear Love

# 3.1.2 让所有字母变成大写 upper()函数
print(name.upper())

>>>CLEAR LOVE

# 3.1.3 让所有字母变成小写 lower()函数
print(name.lower())

>>>clear love

# 3.2 通过+来合并字符串
first_name = 'clear'
last_name = 'love'
full_name = first_name + " " + last_name
print('Hello ' + full_name.title() + '!')

>>>Hello Clear Love!

# 3.3.1 制表符\t
print("sb")
print("\tsb")

>>>
sb
 sb

# 3.3.2 换行符\t
print("NT\nSB\nNC")

>>>
NT
SB
NC

# 3.4.1 删除左边的空白 lstrip()函数
your_name = ' sb '
print(your_name.lstrip())

# 3.4.2 删除右边的空白 rstrip()函数
print(your_name.rstrip())

# 3.4.3 删除两边的空白 strip()函数
print(your_name.strip())

>>>
sb
 sb
sb

# 3.5 编码问题
# 我们要先了解几种编码,ASCII:一个字节,包括了一些数字和英文字母
# Unicode:两个字节,由于一个字节被一些数字和英文字母用完了,那么汉字在一个字节的情况下就会出现乱码,所以两个字节的Unicode就诞生了
# UTF-8变长编码:用一个字节表示英文字母,三个字节表示汉字,4-6个字节表示生僻字
# Python3中字符串使用Unicode编码

# ord()函数:获得字符的整数表示
# chr()函数:获得整数的字符表示
print(ord('A'))
print(chr(66))

>>>
65
B

# 编码
print('A'.encode('ascii'))
print('哈哈'.encode('utf-8'))

>>>
b’A’
b’\xe5\x93\x88\xe5\x93\x88’

# 解码
print(b'ABC'.decode('ascii'))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))

>>>
ABC
中文

# 若有错误
b'\xe4\xb8\xad\xff'.decode('utf-8')

>>>

UnicodeDecodeError Traceback (most recent call last)
in
----> 1 b’\xe4\xb8\xad\xff’.decode(‘utf-8’)

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xff in position 3: invalid start byte

# 传入参数errors='ignore' 忽略错误
b'\xe4\xb8\xad\xff'.decode('utf-8',errors='ignore')

>>>‘中’

# len()函数计算字符个数或字节数
print(len('中文')) #字符个数
print(len(b'\xe4\xb8\xad\xe6\x96\x87')) #字节数

>>>
2
6

# 3.6 格式化输出
# 3.6.1 %d 整数 %f 浮点数 %s 字符串 %x 十六进制数
'Hello, %s' %'world'

>>>‘Hello, world’

# 3.6.2 遇到需要表示普通字符%的时候
print('%d %%'%10)

>>>10 %

# 3.6.3 format()函数对应{0},{1}······
# {1:.1f} -> .1f精确到小数点后一位
'hello {0},you get {1:.1f} point'.format('sb',0.000)

>>>‘hello sb,you get 0.0 point’

# 3.7 索引
# 从左到右从0开始
# 从右到左从-1开始

str = 'Hello world'
# 完整
print(str)
# 第一个字符
print(str[0])
# 第2-5个
print(str[1:5])
# 第3个以后
print(str[2:])
# 后一个
print(str[-1])
# 输出两次
print(str*2)

>>>
Hello world
H
ello
llo world
d
Hello worldHello world

4.数字和运算符

4.1 加减乘除/乘方/取模/取整数

  • 4.2 比较运算符
  • 4.3 位运算符
  • 4.4 逻辑运算符
# 4.1 整数的加减乘除/乘方/取模/取整除

# 加法
print(2+3)
#减法
print(3-2)
# 乘法
print(2*3)
# 除法
print(3/2)
# 乘方
print(3 ** 2)
# 取模
print(5%2)
# 取整除/向下取整
print(3//2)

>>>
5
1
6
1.5
9
1
1

# 4.2 比较运算符

# ==相等返回true
print(1 == 2)

# != 不相等返回true
print(1 != 2)

# <:小于 >:大于 <=:小于等于 >=:大于等于
print(1 > 2)
print(1 < 2)
print(1 >= 1)
print(1 <= 2)

>>>
False
True
False
True
True
True

# 4.3 位运算符

# 与运算 都是1的时候才为1
print('1&0:',1&0)
print('1&1:',1&1)
print('0&0:',0&0)

# 或运算 有1就得1
print('1|0:',1|0)
print('1|1:',1|1)
print('0|0:',0|0)

# 异或运算 不相同才得1
print('1^1:',1^1)
print('1^0:',1^0)
print('0^0:',0^0)

# 左移运算符 高位丢弃/低位补0 2:0000 0010 左移一位 4:0000 0100
print('2<<1:',2 << 1)

# 右移运算符 地位丢弃/高位补0 2:0000 0010 右移一位 1:0000 0001
print('2>>1:',2 >> 1)

>>>
1&0: 0
1&1: 1
0&0: 0

1|0: 1
1|1: 1
0|0: 0

1^1: 0
1^0: 1
0^0: 0

2<<1: 4
2>>1: 1

# 4.4 逻辑运算符 布尔‘与‘’或‘’非‘

# and : x and y,若x为false,返回false,否则返回y的计算值
a = False
b = 2
print('a=False,b=2,a and b:',a and b)

a = 1
print('a=1,b=2,a and b:',a and b)

# or : x or y ,若x不是0,则返回x的值,否则返回y的计算值
print('a=1,b=2,a or b:',a or b)

a = 0
print('a=0,b=2,a or b:',a or b)

# not : not x
print('a=0,not a:',not a)

>>>


a=False,b=2,a and b: False


a=1,b=2,a and b: 2


a=1,b=2,a or b: 1


a=0,b=2,a or b: 1


a=0,not a: False

5. 列表

  • 5.1 访问列表中的值
  • 5.2 修改/删除/添加元素
  • 5.3 列表中的常用操作
  • 5.4 列表中的常用函数
# 5.1 访问列表中的值 索引从0开始
name = ['Tim','Kris','Sam']

# 5.1.1 访问列表中的第一个值
print('访问列表中的第一个值:',name[0])
# 5.1.2 访问第二个以后所有值
print('访问列表中的第一个值:',name[1:])
# 5.1.3 访问所有值
print('访问所有值:',name)
# 5.1.4 访问倒数第一个
print('访问倒数第一个:',name[-1])

>>>
访问列表中的第一个值: Tim
访问列表中的第一个值: [‘Kris’, ‘Sam’]
访问所有值: [‘Tim’, ‘Kris’, ‘Sam’]
访问倒数第一个: Sam

# 5.2 修改/删除/添加元素
# 5.2.1 修改元素
name[2] = 'sb'
print('修改第3个位置的元素后:',name[2])

>>>修改第3个位置的元素后: sb

# 5.2.2 删除元素
# 删除任意位置的元素 del()函数
print('删除元素前:',name)
del name[1]
print('删除第2个元素后:',name)

>>>
删除元素前: [‘Tim’, ‘Kris’, ‘sb’]
删除第2个元素后: [‘Tim’, ‘sb’]

# 删除最后一个元素 pop()函数
print('删除元素前:',name)
name.pop()
print('删除最后一个元素后:',name)

>>>
删除元素前: [‘Tim’, ‘sb’]
删除最后一个元素后: [‘Tim’]

# 5.2.3 添加元素
# 在任意位置添加元素 insert()函数
print('添加元素前:',name)
name.insert(1,'Kris')
print('在第1个位置添加元素后:',name)

>>>
添加元素前: [‘Tim’]
在第1个位置添加元素后: [‘Tim’, ‘Kris’]

# 在最后一个位置添加元素 append()函数
print('添加元素前:',name)
name.append('Sam')
print('添加在最后一个位置后:',name)

>>>
添加元素前: [‘Tim’, ‘Kris’]
添加在最后一个位置后: [‘Tim’, ‘Kris’, ‘Sam’]

# 5.3 列表中的常用操作
list1 = [1,2,3]
list2 = [4,5,6]
list3 = [1]

# 列表的+操作
print("两个列表相加后:",list1+list2)

>>>两个列表相加后: [1, 2, 3, 4, 5, 6]

# 列表的*操作
print('列表所有元素x3:',list3*3)

>>>列表所有元素x3: [1, 1, 1]

# 列表的in, 判断元素是否在列表中
print('2是不是list1的元素:',2 in list1)

>>>2是不是list1的元素: True

# for ... in 列表的遍历
for x in list1:
    print(x)

>>>1
2
3

# 1.4 列表中常用的函数

# 获得列表的长度 len()函数
print('输出函数长度:',len(list1))
# 获得列表中的最大值 max()函数
print('列表中的最大值:',max(list1))
# 获得列表中的最小值 min()函数
print('列表中的最小值:',min(list1))

>>>
输出函数长度: 3
列表中的最大值: 3
列表中的最小值: 1

# 永久排序方法 sort()
list4 = [2,3,1,5]
list4.sort()
print('排序后的list4:',list4)

>>>排序后的list4: [1, 2, 3, 5]

# 暂时排序方法 sorted()
list5 = [3,5,2,6,1]
print('暂时排序的结果:',sorted(list5))
print('排序后原列表:',list5)

>>>
暂时排序的结果: [1, 2, 3, 5, 6]
排序后原列表: [3, 5, 2, 6, 1]

# reverse=True参数 逆序排序
print('暂时逆序排序的结果:',sorted(list5,reverse=True))

>>>暂时逆序排序的结果: [6, 5, 3, 2, 1]

6. 元组

  • 6.1 定义元组
  • 6.2 访问/修改/删除元组
# 6.1 定义元组
t = (1,2)
print(t)

>>>(1, 2)

# 空元组
p = ()
print(p)

>>>()

# 元组是不可修改的
t[0] = 2

>>>
TypeError
Traceback (most recent call last)
in
----> 1 t[0] = 2
TypeError: ‘tuple’ object does not support item assignment

# 6.2 访问/修改/删除元组

# 访问
print('访问第一个元素:',t[0])
# 修改是非法的 但是可以创建新的元组
t1 = (1,2,3)
t2 = (4,5)
print('拼接两个元组:',t1+t2)

>>>
访问第一个元素: 1
拼接两个元组: (1, 2, 3, 4, 5)

# 删除
print('t2删除前:',t2)
del t2
# 删除后 就不存在了
print('t2删除后:',t2)

>>>
t2删除前: (4, 5)
NameError

Traceback (most recent call last)
in
----> 1 print(‘t2删除后:’,t2)
NameError: name ‘t2’ is not defined

7. 字典

  • 7.1 字典的定义
  • 7.2 访问某个关键值对应的值
  • 7.3 添加新的键值对
  • 7.4 修改字典
  • 7.5 删除字典元素
  • 7.6 遍历键值对
  • 7.7 遍历字典中所有的键
  • 7.8 遍历字典中所有的值
  • 7.9 列表中有字典
  • 7.10 字典中有列表
  • 7.11 字典中有字典
# 7.1 字典的定义:是一种可变容器,可以储存任意类型对象 形如:d = {key:value}
d = {'a':1,'b':2,'c':3}
d

>>>{‘a’: 1, ‘b’: 2, ‘c’: 3}

# 7.2 访问某个关键值对应的值 就像访问数组一样,[]内的下标是字典的键值
print(d['a'])

>>>1

# 访问外星人alien_0的颜色和点数/如果玩家射杀这个外星人,就可以获得相应的点数
alien_0 = {'color':'green','points':5}
new_points = alien_0['points']
print('You just earned ' + str(new_points) + ' points!')

>>>You just earned 5 points!

# 7.3 添加新的键值对
print('添加前的字典:',d)
d['d'] = 4
d['e'] = 5
print('添加后的字典:',d)

>>>


添加前的字典: {‘a’: 1, ‘b’: 2, ‘c’: 3}


添加后的字典: {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5}

# 1.4 修改字典
print('修改前的字典:',d)
d['a'] = 666
print('修改后的字典:',d)

>>>


修改前的字典: {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5}


修改后的字典: {‘a’: 666, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5}

# 1.5 删除字典元素 del
print('删除前的字典:',d)
# 删除元素c
del d['c']
print('删除c后的字典',d)

>>>


删除前的字典: {‘a’: 666, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5}

删除c后的字典 {‘a’: 666, ‘b’: 2, ‘d’: 4, ‘e’: 5}

# 清空所有条目
d.clear()
print('清空所有条目后的字典:',d)

>>>清空所有条目后的字典: {}

# 7.6 遍历键值对
user = {'username':'sbzz','first':'sb','last':'zz'}
# 用 for key,value in xx.items():
for k,v in user.items():
    print('\nkey:',k)
    print('\nvalue',v)

>>>
key: username
value sbzz

key: first
value sb

key: last
value zz

# 7.7 遍历字典中所有的键
# for key in xx.keys():
for k in user.keys():
    print(k)

>>>
username
first
last

# 按顺序遍历字典中所有的键 sorted()
for k in sorted(user.keys()):
    print(k)

>>>


first


last


username

# 7.8 遍历字典中所有的值
# for value in xx.values():
for v in user.values():
    print(v)

>>>
sbzz
sb
zz

# 7.9 列表中有字典
# 每个外星人用字典表示它的各种属性,用一个大的列表扩起来,组成一个外星人列表
alien_0 = {'color':'green','point':5}
alien_1 = {'color':'red','point':3}
alien_2 = {'color':'yellow','point':2}

aliens = [alien_0,alien_1,alien_2]

# 遍历
for alien in aliens:
    print(alien)

>>>
{‘color’: ‘green’, ‘point’: 5}
{‘color’: ‘red’, ‘point’: 3}
{‘color’: ‘yellow’, ‘point’: 2}

# 7.10 字典中有列表
# 人和自己喜欢的编程语言是一个键值对,喜欢的语言不止一种,可以有多种语言构成一个列表
favorite_languages = {
    'sb':['python','c++'],
    'zz':['java','php']
}
for name,languages in favorite_languages.items():
    print('\n' + name.title() + '\'s favorite languages are:')
    for language in languages:
          print('\t'+language.title())

>>>


Sb’s favorite languages are:


Python


C++

Zz’s favorite languages are:


Java


Php

# 7.11 字典中有字典
# 有很多的用户 每个用户有first name和last name ,所以用户是一个大的字典,每个小字典是{名字:全名}
user = {
    'aeinstein':{
        'first':'albert',
        'last':'einstein'
    },
    'mcurie':{
        'first':'marie',
        'last':'curie'
    },
}

for username,fullname in user.items():
    print('\nUsername:'+username)
    full_name = fullname['first'] + ' ' + fullname['last']
    print('Full name:' + full_name.title())

>>>
Username:aeinstein
Full name:Albert Einstein

Username:mcurie
Full name:Marie Curie

8. Set

  • 8.1 建立一个set
  • 8.2 重复元素自动过滤
  • 8.3 添加元素 add()
  • 8.4 删除元素 remove()
# 8.1 建立一个set
# set和dict类似,但只有key没有value,并且key不能重复
s = set([1,2,3])
s

>>>{1, 2, 3}

# 8.2 重复元素自动过滤
# 传入的是列表
s = set([1,1,1,2,2,3,3,3,3])
s

>>>{1, 2, 3}

# 8.3 添加元素 add()函数
s.add(4)
s

>>>{1, 2, 3, 4}

# 8.4 删除元素 remove()函数
s.remove(4)
s

>>>{1, 2, 3}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值