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是面向对象的高级编程语言,具有集成的动态语义
- 如何在一个字符串中嵌入一个双引号?
//反斜杠转义
>>> 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
表示
变量和字符串
变量:
- 在使用变量之前,需进行赋值;
- 变量名可以包括字母、数字、下划线、但变量名不能以数字开头;
- 字母可以是大些或者小写,但大小写敏感;
-
=
即“赋值”,左边是名字,右边是赋值,不可写反; - 变量的命名理论可以是任何合法的名字,但尽量专业。
字符串:
- 在字符串中需要出现单引号和双引号时如何处理?上个内容有解释。
原始字符串:
使用非常简单,只需要在啊字符串前面加一个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
>>>
常用操作符
算术操作符
*
、/
、//
、+
、-
优先级
幂运算
正负号
算术操作符
比较操作符
逻辑运算符
比较操作符
<
、<=
、>
、>=
、==
、!=
逻辑操作符
and
or
not
分支与循环
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
('珍珍', '皑皑', '掰掰', '莲莲', '明明')
元祖元素的删除:
元祖相关的操作符:
拼接操作符:
重复操作符:
关系操作符:
成员操作符:
逻辑操作符:
使用小技巧
- ALT+P 返回上一条语句;ALT+N 返回下一条语句