Python

  • 启用
  • 常见命令
  • 输出
  • 一个小程序
  • 变量和字符串
  • 条件分支
  • 数据类型
  • 整型
  • 浮点型
  • e记法
  • 布尔类型
  • 获取数据类型
  • 常用操作符
  • 算术操作符
  • 优先级
  • 比较操作符
  • 逻辑操作符
  • 分支与循环
  • while循环
  • for循环
  • range()
  • break 与continue
  • 列表
  • 向列表添加元素
  • 从列表中获取元素
  • 列表分片(slice)
  • 列表的常用操作符
  • BIF对列表的操作
  • 元祖
  • 使用小技巧

启用

IDLE 是一个Python shell,shell-“外壳”,就是一个通过键入文本与程序交互的途径。

常见命令

输出

print(" ")
//例如
>>> print("I love")
I love
>>> printf("I love")
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    printf("I love")
NameError: name 'printf' is not defined
>>> print(5+3)
8
>>> 5+3
8
>>> 1234567890+987654321
2222222211
>>> print("well water" + "river")
well waterriver
>>> print("I love"* 8)
I loveI loveI loveI loveI loveI loveI loveI love
>>> print("I love\n"* 8)
I love
I love
I love
I love
I love
I love
I love
I love

>>> print("I love\n" + 8)
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    print("I love\n" + 8)
TypeError: can only concatenate str (not "int") to str
>>> 
>>>

输出print而不是printf
数字的计算可以用print,也可以直接书写输出
字符串之间可以相加“+”;字符串与数值可以进行乘法,即输出多少个;但不能相加,因为类型不同

python是面向对象的高级编程语言,具有集成的动态语义

  1. 如何在一个字符串中嵌入一个双引号?
//反斜杠转义
>>> print("I love \"you\" ")
I love "you" 
//单引号 引注 双引号
>>> print('I "love" you')
I "love" you
>>>

一个小程序

print('、、、、大家好、、、、')
temp = input("0-9中,想想此刻我在想哪个数字")
guess = int(temp)//返回整型并赋值
if guess == 8:
    print("你真牛b")
else:
    print("你猜错了,笨蛋!")
print("呵呵,不玩了")

input输入
注意缩进的使用

BIF内置函数,查看内置函数

>>> dir(__builtins__)

对应内置函数的使用

>>> help(input)

python3中一个提供了72个BIF
python大小写敏感
注意缩进,严格要求缩进可以使得python代码精简且富有层次;没有正常的使用缩进会导致代码错误,与预期相差甚远;在正确的位置输入:,IDLE会自动将下一行缩进
==错写成=python会报错
拼接:在一些编程语言中,可以通过“相加”在一起,如:‘I’ + ‘Love’ + ‘FishC’ 会得到 ‘ILoveFishC’,在 Python 里,这种做法叫做拼接字符串。
在python中&and表示

变量和字符串

变量:

  1. 在使用变量之前,需进行赋值;
  2. 变量名可以包括字母、数字、下划线、但变量名不能以数字开头;
  3. 字母可以是大些或者小写,但大小写敏感;
  4. =即“赋值”,左边是名字,右边是赋值,不可写反;
  5. 变量的命名理论可以是任何合法的名字,但尽量专业。

字符串:

  1. 在字符串中需要出现单引号和双引号时如何处理?上个内容有解释。

原始字符串:
使用非常简单,只需要在啊字符串前面加一个r且结尾不能加\,否则报错

>>> str = r'C:\now'
>>> str
'C:\\now'
>>> print(str)
C:\now
>>> str=r'C:\now\bivbi\bigbi\bibi'
>>> str
'C:\\now\\bivbi\\bigbi\\bibi'
>>> print(str)
C:\now\bivbi\bigbi\bibi
>>> str=r'C:\now\bivbi\bigbi\bibi\'
SyntaxError: EOL while scanning string literal
>>>

如果非要使用 r 进行原始字符串操作的话可以采用如下形式解决:

>>> str=r'C:\now''\\'
>>> str
'C:\\now\\'
>>> print(str)
C:\now\
>>>

长字符串
如果需要得到一个跨越多行的字符串,这就要用到三重引号字符串

>>> str="""《江雪》

  唐·柳宗元

  千山鸟飞绝,万径人踪灭。

  孤州蓑笠翁,独钓寒江雪。"""
>>> str
'《江雪》\n\n\u3000\u3000唐·柳宗元\n\n\u3000\u3000千山鸟飞绝,万径人踪灭。\n\n\u3000\u3000孤州蓑笠翁,独钓寒江雪。'
>>> print(str)
《江雪》

  唐·柳宗元

  千山鸟飞绝,万径人踪灭。

  孤州蓑笠翁,独钓寒江雪。
>>>

条件分支

python的比较操作符

含义

>

左边大于右边

>=

左边大于等于右边

<

左边小于右边

<=

左边小于等于右边

==

左边等于右边

!=

左边不等于右边

python的条件分支语法:

if:
	条件为真(true)执行操作
else:
	条件为假(false)执行的操作

while
提示:

使用and逻辑操作符:python的and逻辑操作符可以使任意表达式连接在一起,并得到一个布尔类型的值

引入外援:每次运行程序产生的答案是随即的

random模块
random模块中有一个函数叫做randint(),会返回一个随即的整数

数据类型

整型

浮点型

e记法

布尔类型

true 1
false 0

获取数据类型

type()
isinstance()

>>> type(a)
<class 'int'>
>>> type(b)
<class 'str'>
>>> a = 'niubi'
>>> isinstance(a,str)
True
>>> isinstance(a,int)
False
>>>

常用操作符

算术操作符

*///+-

优先级

幂运算
正负号
算术操作符
比较操作符
逻辑运算符

比较操作符

<<=>>===!=

逻辑操作符

andornot

分支与循环

python可以有效避免悬挂else
条件表达式(三元操作符)
语法: x if 条件 else y

断言(assert)
assert这个关键词称之为断言 ,当这个关键词后面的条件为假的时候,程序自动崩溃并抛出AssertionError的异常

一般来说,可以用assert在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

while循环

while 条件:
	循环体

for循环

语法:
	for 目标 in 表达式:
		循环体

range()

range([strat,]stop[,step=1])

这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的
step=1表示第三个参数的值默认值是1
range这个BIF的作用是生成一个从start参数的值开始道stop参数的值结束的数字序列

>>> for i in range(5):
	print(i)

	
0
1
2
3
4
>>> for i in range(2,7):
	print(i)

	
2
3
4
5
6
>>> for i in range(2,7,2):
	print(i)

	
2
4
6
>>>

break 与continue

列表

普通列表
混合列表
空列表

向列表添加元素

append

>>> member =['珍珍','莲莲','皑皑']
>>> member
['珍珍', '莲莲', '皑皑']
>>> member.append('妞妞')
>>> member
['珍珍', '莲莲', '皑皑', '妞妞']
>>> 
>>> member.append('明明','跃跃')
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    member.append('明明','跃跃')
TypeError: append() takes exactly one argument (2 given)
>>> //多个对象不成功

extend()
对象是数组

>>> member.extend('明明','跃跃')
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    member.extend('明明','跃跃')
TypeError: extend() takes exactly one argument (2 given)
>>> member.extend(['明明','跃跃'])
>>> member
['珍珍', '莲莲', '皑皑', '妞妞', '明明', '跃跃']
>>>

insert()
插入指定位置,只能插入单个对象

>>> member.insert(1,'茵茵')
>>> member
['珍珍', '茵茵', '莲莲', '皑皑', '妞妞', '明明', '跃跃']
>>> member.insert(1,'轻轻','拜拜')
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    member.insert(1,'轻轻','拜拜')
TypeError: insert expected 2 arguments, got 3
>>> member.insert(1,['轻轻','拜拜'])
>>> member
['珍珍', ['轻轻', '拜拜'], '茵茵', '莲莲', '皑皑', '妞妞', '明明', '跃跃']
>>> member.insert(1,'轻轻',2,'拜拜')
Traceback (most recent call last):
  File "<pyshell#32>", line 1, in <module>
    member.insert(1,'轻轻',2,'拜拜')
TypeError: insert expected 2 arguments, got 4
>>>

从列表中获取元素

remove()
必须清楚元素具体名字

>>> member
['珍珍', ['轻轻', '拜拜'], '茵茵', '莲莲', '皑皑', '妞妞', '明明', '跃跃']
>>> member.remove(['轻轻','拜拜'])
>>> member
['珍珍', '茵茵', '莲莲', '皑皑', '妞妞', '明明', '跃跃']
>>> member.remove('iauvbfi')
Traceback (most recent call last):
  File "<pyshell#36>", line 1, in <module>
    member.remove('iauvbfi')
ValueError: list.remove(x): x not in list
>>>

del语句

>>> member
['珍珍', '茵茵', '莲莲', '皑皑', '妞妞', '明明', '跃跃']
>>> del member[1]
>>> member
['珍珍', '莲莲', '皑皑', '妞妞', '明明', '跃跃']
>>>

pop()

>>> member.pop()
'跃跃'
>>> member
['珍珍', '莲莲', '皑皑', '妞妞', '明明']
>>> name = member.pop(2)
>>> name
'皑皑'
>>> member
['珍珍', '莲莲', '妞妞', '明明']
>>>

列表分片(slice)

利用索引值,每次可以从列表获取一个元素,但如果需要一次性获取多个元素,可以利用列表分片简单实现。

>>> member[1:2]
['莲莲']
>>> member[:3]
['珍珍', '莲莲', '妞妞']
>>> member[:]
['珍珍', '莲莲', '妞妞', '明明']
>>>

列表的常用操作符

比较操作符

>>> list1 = [123]
>>> list2 = [234]
>>> list1 > list2
False
>>> list1 = [123,456]
>>> list2 = [234,123]
>>> list1 > list2
False

逻辑操作符

>>> list3 = [123,456]
>>>> (list1 < list2) and (list1 == list3)
True

连接操作符 (必须是同个类型)

>>> list4 = list1 + list2
>>> list4
[123, 456, 234, 123]
>>> list1 + '安好是是v'
Traceback (most recent call last):
  File "<pyshell#60>", line 1, in <module>
    list1 + '安好是是v'
TypeError: can only concatenate list (not "str") to list

重复操作符

>>> list3
[123, 456]
>>> list3 *3
[123, 456, 123, 456, 123, 456]
>>> list3*=2
>>> list3
[123, 456, 123, 456]

成员关系操作符

>>> list3
[123, 456, 123, 456]
>>> 123 in list3
True
>>> 890 in list3
False
>>> 123 not in list3
False
>>> list5 = [123,['aaa','bbb'],456]
>>> list5
[123, ['aaa', 'bbb'], 456]
>>> 'aaa' in list5
False
>>> 'aaa' in list5[1]
True
>>>

BIF对列表的操作

count

>>> list3
[123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456]
>>> list3.count(123)
6

index

>>> list3.index(123)
0
>>> list3.index(123,5,7)
6
>>>

reverse

>>> list3
[123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456]
>>> list3.reverse()
>>> list3
[456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123]

sort

>>> list6 = [5,2,8,3,6]
>>> list6.sort()
>>> list6
[2, 3, 5, 6, 8]

r如何翻转,即从大到小排列
法一:先sort,在reverse

>>> list6 = [5,2,8,3,6]
>>> list6.sort()
>>> list6
[2, 3, 5, 6, 8]
>>> list6.reverse()
>>> list6
[8, 6, 5, 3, 2]

法二:利用sort(reverse=True)

>>> list7 = [8,2,6,9,4,5]
>>> list7
[8, 2, 6, 9, 4, 5]
>>> list7.sort(reverse=True)
>>> list7
[9, 8, 6, 5, 4, 2]

python的标签即多一个名字,指代依旧,注意与分片的区别

>>> list7
[9, 8, 6, 5, 4, 2]
>>> list8 = list7[:]
>>> list8
[9, 8, 6, 5, 4, 2]
>>> list9 = list7
>>> list9
[9, 8, 6, 5, 4, 2]
>>> list7.sort()
>>> list7
[2, 4, 5, 6, 8, 9]
>>> list8
[9, 8, 6, 5, 4, 2]
>>> list9
[2, 4, 5, 6, 8, 9]

元祖

由于和列表是近亲关系,所以元祖和列表在实际使用上非常相似
区别:列表可以修改其中任意元素;元祖则不行。
元祖的一般创建与分片:

>>> tuple1 = (1,2,3,4,5)
>>> tuple1
(1, 2, 3, 4, 5)
>>> tuple1[1]
2
>>> tuple1[:5]
(1, 2, 3, 4, 5)
>>> tuple2 = tuple1[:]
>>> tuple2
(1, 2, 3, 4, 5)

只有一个对象时,元祖的创建:

>>> temp=1,
>>> type(temp)
<class 'tuple'>
>>> temp= (1,)
>>> type(temp)
<class 'tuple'>

空元祖的创建:

>>> temp = []
>>> type(temp)
<class 'list'>
>>> temp = ()
>>> type(temp)
<class 'tuple'>

注意,

>>> 8 * (8)
64
>>> 8 * (8,)
(8, 8, 8, 8, 8, 8, 8, 8)

元祖的插入:

>>> temp = ('珍珍','皑皑','莲莲','明明')
>>> temp = temp[:2] + ('掰掰',) + temp[2:]
>>> temp
('珍珍', '皑皑', '掰掰', '莲莲', '明明')

元祖元素的删除:
元祖相关的操作符:
拼接操作符:
重复操作符:
关系操作符:
成员操作符:
逻辑操作符:

使用小技巧

  1. ALT+P 返回上一条语句;ALT+N 返回下一条语句