python入门

第一章 python基础 day 1 基本语法

1.1 编程语言介绍与分类

什么是编程语言?

​ 本质 上跟人类语言目的一样,是为了沟通

电脑组成:电流+一堆硬件

​ 高电压1 低电压0

​ 高电压1 低电压0

​ 高电压1 低电压0 8 晶体管

010101010101010 play soun

10100000 open file

机器语言 直接跟硬件打交道
汇编语言 开发效率低

0101010101010<---play_m

高级语言

​ 对底层硬件的各种指令 做了封装

​ play_music("忽然.mp3")

人类代码—— 翻译——机器语言

​ 根据不同的翻译方式产生了两个流派

编译型语言
人类代码——一次性把代码给翻译官(编译器)——汇编——机器语言

代表:c,c++,Go(Golang )

优点:执行速度快

缺点:跨平台可移植性差

​ 硬件,CPU,有自己指令规则 0000000001 打印,1110000 play music

Intel , a m d:复杂指令集

ARM,精简指令集 手机/i Pad 低功耗

你的基于Intel平台编译出来的程序是无法在ARM平台软件,你的c程序想在windows,Linux,mac同时可以运行

windows invoke_windows

Linux,Mac call_windows

PyPy(python)

解释性语言

​ 人类代码——边执行陪同翻译(解释),陪同翻译(解释器,虚拟机)——机器语言

代表:python,php,java,ruby , c#

优点:跨平台好

缺点:翻译需要时间,执行速度慢

c语言:1 ms python: 10 ms

大多数情况下,语言的快慢是我们人类感知不到的

1.2 python介绍,发展趋势

python发展史

​ 创作人是Guido python里人称 龟叔 1989年创造python

2005—2012 谷歌大量使用python ,2013 Dropbox 2005—豆瓣 python

2009 用python 2012—云计算 1000=1000 Open stack python

2012 讲python,自动化开发,不会开发的运维终将淘汰

2014 AI兴起,python大量应用

2017 大众视野

java,c,python被评为世界人们最喜欢的语言

主要应用领域

web开发,爬虫,云计算,人工智能/数据分析,自动化运维,科学运算,游戏开发

1.3python环境安装

windows

进入https://www.python.org 选择downloan 下载windows版,打开文件

按照个人需要选择

接下来就能安心的安装了~

macos(Mac OS X)

进入https://www.python.org 选择downloan 下载macos(或Mac OS X)版打开文件

(其实mac都会自带,只是版本有点低~)

接下来按windows的来就行了

1.4选择宇宙最好用的pycharm IDE

激活包链接: https://tc5.us/file/18453168-438355861

pycharm2020.1下载链接:https://download.jetbrains.com.cn/python/pycharm-professional-2020.1.exe

下载完成后根据自己的需要输入,如果一开始就要你注册,就选择免费试用(Free trial)

显示IDE窗口后,把下载后的激活包直接拖进去就行了~

(当然,你有钱也可以买~(官网价格一千元(ΩДΩ)))

1.5变量

[^x=2]:
[^x+y=6 公式调用]:

先定义,变量,存在内存里

代码后调用

变量名只能是字母、数字或下划线的任意组合

变量的第一个字符不能是数字

python里的关键字声明不能为变量名

常用定义方式

驼峰体
AgeOfOldBoy = 56
NumberOfStudents = 80
下划线
age_of_old_boy = 56
number_of_students = 80

你觉得哪一种更清晰,哪种就是官方推荐的,我猜你绝对会选第二种(哈哈)

定义变量不好的方式举例

变量名为中文,拼音

变量名过长

变量名词不达意

修改

别说了,看这个你就明白了

name = "Alex"
name = "Alex zhang"
print(name)

1.6常量

python没有固定的常量

1.7注释

注释有2种方式

第一种:井号式(单行)
# Alex是个老男孩
第二种:引号式(官方推荐—多行)
""" Alex是个老男孩 """

1.8基本数据类型

str Alex int 23

​ 01001 010101

数字

​ int整数 float浮点数 ~小数

​ 666 | 3.1415926

查看变量的数据类型

type(age)

在python3里,所有的整数都按int类型处理

其他语言里必须在声明变量前先定义好其类型 强类型

  • [x] 弱类型语言
字符串
定义
name ="Alex" # 有引号就是字符串
'alex'  "i am Alex"  '''yyds'''
拼接
s1 ="我本将心照明月"
s2 ="无奈明月不曾来"
print(s1+s2)

段落/多行

'''yyds
yyds  yyds  yyds
'''

布尔类型(bool)

a = 3 b = 5

b > a 正确/成立 真True

b < a 错误/不成立 假False

if today = raining
    print("take unbrealla")
else False
    print("don't take unbrealla")

列表

人物:Alex,Egon,old_vill_age_master,Peiqi,black_girl

names = ["Alex","Egon","old_vill_age_master","peiqi","black_girl"]
print(names)
print(names[0])
插入
print(names.insert(4,"Alex"))
追加
print(names.append("luocat"))
del names[-1]
names[-1]= "黑姑娘"
'peiqi' in names
查到元素的下标并返回
names.index("peiqi")
命令嵌套
del names[names,index("peiqi")]

dict,set,tuple

1.9读取用户命令

name = input("请输入你的名字")
age = float(input("输入你的年龄"))
height = input("输入你的身高")
question = input("你是不是全身都黑")
msg='''
---------Personal Info---------
Name    : %s 
Age     : %f
Height  : %s
Answer  : %s
-------------End---------------
''' %(name,age,height,question)

print(msg)
if question =="Y" or question == "y":
    print("我不信,让我看看...")

input 方法接受到的所有数据都以字符串的格式处理

1.10格式化打印

%s 是代表字符串

%d 整数

%f 浮点数

1.11运算符

假设以下变量 a=10 b=20

算数运算

运算符 描述 实例
+ 加-两个对象相加 a+b=30
- 减-得到负数或是一个数减去另一个数 a-b=-10
* 乘-两个数相乘或是返回一个被重复若干次的字符串 a*b=200
/ 除-x除以y b/a=2
% 取模-返回除法的余数 b%a=0
** 幂-返回x的y次幂 a**b=100000000000000000000
// 取整除-返回商的整数部分 b//a=2 b.0//a.0=2.0

比较运算

运算符 描述 实例
== 等于-比较对象是否相等 (a==b)=False
!= 不等于-比较两个对象是否不相等 (a!=b)=True
<> 不等于-比较两个对象是否不相等 (a<>b)=True
> 大于-返回x是否大于y (a>b)=False
< 小于-返回x是否小于y (a<b)=True
>= 大于等于-返回x是否大于等于y (a>=b)=False
<= 小于等于-返回x是否小于等于y (a<=b)=True

赋值运算

运算符 描述 实例
= 简单的赋值运算符 c=a+b将a+b的结果赋值为c
+= 加法赋值运算符 c+=a等效于c=c+a
-= 减法赋值运算符 c-=a等效于c=c-a
*= 乘法赋值运算符 c=a等效于c=ca
/= 除法赋值运算符 c/=a等效于c=c/a
%= 取模赋值运算符 c%=a等效于c=c%a
**= 幂赋值运算符 c=a等效于c=ca
//= 取整除赋值运算符 c//=a等效于c=c//a

逻辑运算

运算符 描述 实例
and 判断多个条件均为真时,返回真 a>10 and b>10 结果为False
or 判断多个条件任意条件为真时,返回真 a>10 or b>10 结果为True
not 取反 not a>b 结果为True

1.12流程控制之if...else

相当于如果...否则

单分支

if 条件:
满足条件后要执行的代码

AgeOfAlex = 13
if AgeOfAlex < 18:
    print("Alex,you is to young...")

if下面的条件要空四个空格

顿号是语法格式

print("Alex,you is to young...")是if条件成立要执行的代码

双分支

if 条件:

​ 满足条件后要执行的代码

else:

​ if条件不满足就走这一段

today_weather = "sun_day"
if today_weather == "rain_day":
    print("take your umbrella with you")
else:
    print("today is sun_day. you do not take umbrella")
缩进

​ 这里必须要插入这个缩进的知识点

你会发现,上面的if代码里,每一个条件的下一行都缩进了4个空格,这是为什么呢?这就是python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行那些代码呢?

在其他的语言里,大多通过{}来确定代码块,比如C,C++,Java,Javascript都是这样,看一个Javascript代码的例子

var age = 56
if (age<50){
  console.log("还能折腾")  
    console.log('可以执行多行代码')
}else{
    condole.log('太老了')
}

在有{}来区分代码块的情况下,缩进的作用只剩下让代码变得整洁了。

python是一门超级简洁的语言,龟叔一定是觉得用{}太丑了,所以干脆不用他,那怎么能区分代码块呢?答案就是强制缩进

python的缩进有以下几个原则:

顶级代码必须顶行,即如果一行代码本身不依赖于任何条件,那他必须不能进行任何缩进

同一级别的代码,缩进必须一致

官方建议用4个空格,当然你也可以用两个,如果你想让别人笑死的话

多分支

回到流程控制上来,if...else可以有多个分支

if 条件:

​ 满足条件后要执行的代码

elif条件:

​ 上面的条件不满足就走这个

elif条件:

​ 上面的条件不满足就走这个

elif条件:

​ 上面的条件不满足就走这个

else:

​ 上面的条件全部不满足就输入这个

age = 13
if age < 12:
    print("you are child")
elif age < 18:
    print("you are teenager")
elif age < 30:
    print("you are young man")
else:    
    print("your are oil middle-age man")

1.13流程控制之while循环

语法
while 条件:
    执行代码...

简单吧,while就是当的意思,当山峰没有菱角的时候,当河水...sorry,while指当其后面的条件成立,就执行while下面的代码

写个程序从0打印到100的程序,每循环一次 +1

count = 0
while count < 100:
        print(count)
    count += 1

再来个升级版,让它只打印偶数

count = 0
while count < 100:
    if count % 2 == 0:
        print(count)
    count += 1
循环静止

在使用while的时候想让它终止,就在代码后端输入break或contiune(静止当前循环)

比如这个猜数

import random
n = random.randint(0,10)
count = 0
while count < 5:
    user_guess = int(input("Input your guess"))
    if user_guess <n:
        print("try smaller..")
    elif user_guess >n:
        print("try bigger..")
    else:
        print("bingo, you got it..")
        break #此处终止循环

    count +=1
print(n)
死循环

分两种

dead loop

while Ture
此笔记写自Alex老师的课程,偷偷告诉你们,我的英文名和他一样偶
之后这笔记会连载