从入门到入坟>_<
文章的内容是根据[小甲鱼]《零基础入门学习Python》最新版整合的一些内容,感兴趣的可以去看一看
文章目录
一、从IDLE启动Python
IDLE是一个 Python Shell,shell的意思就是“外売”,基本上来说,就是一个通过键入文本与程序交互的途径!
在>>>后输入Python指令
例如:
>>>print("hello world!")
结果为hello world!
这个界面类似window的命令行操作,熟悉各种命令行操作有时候能够提高效率
比如:
Alt+p
是复制粘贴最后一条执行的命令行操作(多次操作即命令从下往上复制粘贴);
Alt+n
是复制粘贴第一题一条执行的命令行操作(多次操作即命令从上往下复制粘贴);
二、一些尝试
对于Python而言,格式的缩进是直接导致Python能否运行的关键
Python中可以执行print("字符串")
,甚至可以直接输入要计算的式子,这里面有两种写法:
一种是直接print(1+1)
,由于双引号""中加的是字符串,而我们的计算是整型的数字结果;
而另一种则直接使用
>>>1+1
还可以把一些字符串连在一起打印出来,称之为拼接
print("hello"+" world!")
输入结果为:hello world!
或者是字符串乘上一个数
print("hello world\n"*7)
输出结果为:
hello world
hello world
hello world
hello world
hello world
hello world
hello world
三、利用Python设计第一个游戏
temp = input("猜猜看是哪个数")
guess = int(temp)
if guess == 7:
print("厉害呀")
print("哎嘿,猜中也没惊喜>_<")
else:
print("猜错了")
print("哎嘿,大傻子= =")
print("game over")
Python中对缩进有严格的要求
四、BIF(内置函数)
- 查看Python中所有的内置函数
dir(__builtins__)
- 查看某一个BIF功能
help(input)
五、变量和字符串
变量
在Python中,与大多数共他计算机语言的做法稍有不同,Ta并不是把值存储在变量中,而更像是把名字贴在值的上边;
所以有些 Python程序员会说“ Python”没有“变量”,只有“名字”;
- 在使用变量之前,需要对其先赋值。变量名可以包括字母、数字、下划线,但变量名不能以数字开头;(Python3中变量可以使用中文)
- 字母可以是大写或小写,但大小写是不同的。也就是说
Hello
和hello
对于Python来说是完全不同的两个名字; - 等号
=
是赋值的意思,左边是名字,右边是值,不可写反;
字符串
目前为止,我们所认知的字符串就是引号内的一切东西,我们也把字符串(字符串中的引号可以是单引号,也可以是双引号)叫做文本,文本和数字是截然不同的,比如:
>>>3+7 # 输出结果为10
>>>'3'+'7' # 输出结果为'37'
如果想要在字符中出现单引号或者是双引号的情况
有两种方法:
第一种是使用转移符号\
对字符串中的引号进行转义,即:
>>>'Let\'s go' # 输出结果为Let's go
原始字符串
由于\
转义字符会将一些路径转义成其他操作,如下所示
print("D:\one\two\three")
# 结果为 D:\one wo hree
很明显\t
被转义成空格操作,所以我们需要对\
进行转义,即:
print("D:\\one\\two\\three")
# 结果为 D:\one\two\three
但如果路径很长的话就需要加非常多的反斜杠来对反斜杠进行转义,非常的麻烦,所以采用原始字符串来输出;
原始字符串能够使转义字符失效,而原始字符串也非常的简单使用,即在引号前加一个r
便可以实现:
print(r"D:\one\two\three")
# 结果同样为 D:\one\two\three
这里需要注意的是,
\
不能放在末尾,有点类似Matlab的操作,\
放置在末尾的话即使按下回车也不会直接进入执行,而是会在下一行继续输入;
(但这里不建议使用,使用的话可以使用下面的长字符串来实现跨越多行的字符串)
长字符串
如果想要得到一个跨越多行的字符串,可以使用三重引号字符串(可以是三队单引号,也可以是三队双引号)
str = '''How are you;
Fine;
And you;
'''
print(str)
##或者
str = """How are you;
Fine;
And you;
"""
print(str)
#两个的输出结果都为:
#How are you
#Fine;
#And you;
六、引入random模块
可以在之前做的小游戏中进行修改
即如下代码:
import random # 引入random模块
random_number = random.randint(1,10) # 设置一个随机数为1-10的变量random_number
temp = input("输一个数字吧(1-10)")
guess = int(temp)
while guess != random_number:
temp = input("哎呀错了,再输一次吧")
guess = int(temp)
if guess == random_number:
print("nice")
else:
if guess > random_number:
print("too much")
else:
print("too small")
print("game over")
七、数据类型
1、Python3中有六个标准数据类型:
分别为:
1、Number(数字:int、float、bool、complex )
2、String(字符串:str )
3、List(列表:用[] )
4、Tuple(元组用())
5、Set(集合用{})
6、Dictionary(字典)
2、类型转换
整数(int)→浮点型(float)
>>>a = 7
>>>b = float(a)
>>>b
# 输出结果为:7.0
浮点型(float)→整数(int)
>>>a = 7.99
>>>b = int(a)
>>>a
# 输出结果为:7(因为浮点型转换成整型是采取的截断处理,即小数点后的数据直接舍弃)
字符串(str)→浮点型(float)
>>>a = '123'
>>>b = float(a)
>>>b
# 输出结果为:123.0
字符串(str)→整数(int)
>>>a = '123'
>>>b = int(a)
>>>b
# 输出结果为:123
需要注意的是,这种字符串的转换只能够转换数字,对于中文和英文会报错
整数(int)→字符串(str)
>>>a = 123
>>>b = str(a)
>>>b
# 输出结果为:'123'
浮点型(float)→字符串(str)
>>>a = 123.0
>>>b = str(a)
>>>b
# 输出结果为:'123.0'
3、type()和isinstance()
对于上述两种函数都可以用来判断变量的类型;
>>>a = '123'
>>>type(a)
# 输出为:<calss 'str'>
>>>a = '123'
>>>isinstance(a,str)
# 输出为:True
4、算术操作符
Python中的算术操作符有+
、-
、*
、/(除)
、%(求余)
、**(幂运算)
、//(求整)
;
>>>2 * 7
# 14
>>>7 / 2
# 3.5
>>>7 % 2
# 1
>>>7 ** 2
# 49
>>>7 // 2 # 地板除(与%相反,//是取比目标结果小的最大整数)
# 3
>>>9 // 4
# 2
逻辑优先级
与数学计算相同,先乘除后加减。
逻辑操作符
分别是or
、and
、not
>>> (3 < 4) and (4 < 5) # 这里可以不用加(),但是加了括号可以更加美
# 观,而且别人看的时候更加舒服,也省时省力;
# 所以建议多加加括号,能够使整体代码更加美观。
# True
>>>True or False
# True
>>>False or False
# False
>>>True and True
# True
>>>True and False
# False
>>>not 0
# True
>>>not 7
# False
>>>not True
# False
# not即取反,若对False(0)取反则为True,若对True(非0)取反则为False;
短路逻辑:
对于Python而言,and
运算符只要一个是False则结果就为False,所以先判断左边的操作数是否为True,如果为False则直接输出False,若为True,则直接将右边操作数直接当做结果输出;
or
运算符同上,只要两边操作符存在一个True则结果就为True,所以先判断左边操作符是否为True,如果为True则直接将左边操作符直接当结果输出,如果不为True,则直接将右边操作符直接当结果输出;
如下例子:
#当and存在一个False时:
>>>0 and 3
# 0
>>>3 and 0
# 0
#当and两边都为True时:
>>>3 and 4
# 4
>>>4 and 3
# 3
#当or存在一个Ture时:
>>>3 or 0
# 3
>>>0 or 3
# 3
#当or两边都为True时:
>>>3 or 4
# 3
>>>4 or 3
# 4
优先级
以下列出各运算符优先级(从高到低排列)
- (expressions…)、[expressions…]、{key:value…}、{expressions…} # 绑定或元组显示、列表显示、字典显示、集合显示;
- x[index]、x[index:index]、x(arguments…)、x.attribute # 下标、切片、函数调用、属性引用;
- await x # Await表达式
**
# 指数+x
、-x
、~x
# 正号、负号、按位翻转;*
、@
、/
、//
、%
# 乘法、矩阵乘法、除法、地板除、取余;+
、-
# 加、减;<<
、>>
# 移位&
# 按位与;^
# 按位异或;|
# 按位或;in
、not in
、is
、is not
、<
、<=
、>
、>=
、!=
、==
# 比较,同一性测试;not x
# 布尔‘非’;and
# 布尔‘与’;or
# 布尔‘或’;if else
# 条件表达式;lambda
# Lambda表达式;