2019-01-15

一、计算机简介

1.软件开发简介

软件:一系列按照特定顺序组织起来的计算机语言或者指令

开发:制作软件的过程

软件的分类:

系统软件:Windows,Linux,mac os等

应用软件:qq,微信等

2.Python概述

Python的特点:

a.面向对象的【一切皆对象】

b.解释性语言

c.交互式语言【在终端进行命令的编程】

d.跨平台的语言【没有操作系统的限制,任何的操作系统都可以运行python代码】

Python的优缺点:

优点:

a.易于学习和维护【版本更新迭代】

b.广泛的标准库【提供了大量的工具】

c.可扩展性

d.数据库【mysql,sqlites3,mongodb,redis等数据库,Python中都有对应的模块】

e.GUI编程【图形化界面】

缺点:

a.运行速度慢【和c语言比较】

b.代码不能加密

3.数据的存储

计算机的作用:存储数据,运算数据

数据存储在内存中,是以二进制的形式存储的【0和1,开关原理】

进制的转换:计算机底层的工作原理

原码反码补码:数据在计算机中都是以补码的形式存储的

二、基础语法

1.关键字和标识符

关键字:在Python中被赋予了特殊含义的英文单词【break,continue,import,from ,class等】

标识符:

规则:

a.只能由数字,字母,和下划线

b.不能以数字开头

c.不能使用其他的特殊符号

d.严格区分大小写

规范:

a.不要使用关键字【注意:不要使用系统的函数名命名:abs = 10】

b.格式:

Python官方:所有的单词全部小写,不同的单词之间使用下划线分隔,举例:student_num

普遍:驼峰命名法

小驼峰:不同单词之间要分隔:单词首字母大写,但是。第一个单词的首字母小写,举例:studentNum

大驼峰:不同单词之间要分隔:单词首字母大写,举例:StudentNum【TypeError,ValueError】,一般只使用在类名的定义中

常量命名法:NUMBER = 10  ,只是一种约定,本质还是一个变量

2.常量和变量

可以随时进行重新赋值的标识符【可以修改值,也可以修改类型】

Python是一门弱类型的语言【强类型:Java】

举例:

num = 10

num = 20

num = "hello"

Java:  int num = 10    num = 20

js:  var num = 10

Python的数据类型:

数字型:整型和浮点型,复数

字符串:“xxxx”    “”“xxxxx”“”

布尔型:True和False

空值:None

数据结构:list,tuple,dict,set

a.定义方式:list:[]  tuple:()  dict:{}  set:{}

b.是否有序:list:有序  tuple:有序  dict:无序  set:无序

c.是否允许出现重复元素:list:允许  tuple:允许  dict:key不允许  set:不允许

d.属于可迭代对象

e.set相当于存储了字典中的key

f.可以相互转换

list(xx)  tuple(xx)    set(xx)

函数:函数名其实就是一个变量名

类:

内存中的变量:

num = 10  s1 = “hello”     

内存:运算区域

变量的本质:在内存中开辟了一块空间,其中存储了指定类型的数据

堆:实体存储在堆空间中

栈:变量【引用】存储在栈空间中

删除变量:就相当于该变量未被定义

num = 10

del num

print(num)  #NameError

变量类型之间的转换:

int()    str()  float()

3.input和print

input:输入

print:输出

importsys

s1="453645"

print(int(s1))

#input获取到的内容全部是字符串

# s2 = int(input("请输入数字:"))

# print(s2 + 10)

#数据转换为int的过程中,如果想要转换成功,则指定的数据必须是全数字,如果有其他特殊符号,

# 只能出现+和-,而且只能出现在字符串的第0个字符

# s3 = "abc123"

# s3 = "12+3"

s3="-123"

print(int(s3))

print(str(123))

​print(type(str(123)))

​print(float(12))

​print("+++++++==+++++++++++")

​print("hello")

print("hello",3456,17)

#格式化:占位符

"""

%s:字符串,所有的对象

%d:整型

%f:浮点型

"""

num1=10

str1="abc"

print(num1,str1)

print("num1=",num1,'str1=',str1)

print("num1=%d,str1=%s"%(num1,str1))

#需求:将下面三个单词使用%连接起来

print("hello",'good','abchuag')

#默认情况下,sep关键字的值为一个空格的字符串 " "

print("hello",'good','abchuag',sep="%")

#默认情况下,end关键字的值为一个\n【换行符,转义字符】,

print("hello",end="")

print("fhghb")

#重定向:改变原来的操作方式

#默认情况下,关键字file默认的值为sys.stdout

print("hello",file=sys.stdout)

#相对路径

f=open("file1.txt","w")#w;write    r:read

print("shjgh~~~~~~~~",file=f)

4.运算符

算术运算符:**【求幂】    //【求整】

#算术运算符:优先级:**  >  * / //  %> + -

print(2*5)

print(2**3)

print(2**5*3)#96

print(2*5**3)#250

print((2*5)**3)

赋值运算符:

简单赋值运算符: = 

复合赋值运算符:+=  -=  *=  /= 等  【算术运算符和简单赋值运算符的组合】

num=10

#num += 20  

#等价于:num  = num + 20

关系【比较,条件】运算符:==  !=  >=等

注意1:运算的结果肯定为布尔值,一般结合if语句或者while循环

注意2:区别==和=

#关系运算符

num=10

ifnum%2==0:#1 == 0  0== 0

print("偶数")

逻辑运算符:

and :两个条件同时成立返回True

or:至少一个条件成立,则返回True

not :否定

注意:运算的结果肯定为布尔值

假:0, 0.0  False,None,""

注意:短路原则

#and ;逻辑与

#一假为假,全真为真

print(TrueandTrue)#True

print(TrueandFalse)#False

print(FalseandTrue)#False

print(FalseandFalse)#False

print(TrueandFalseandTrue)#False

print(FalseandTrueandTrueandTrueandFalse)#短路原则

print("ghjsrghjrh")

#or:逻辑或

#一真为真,全假为假

print(TrueorTrue)#True

print(TrueorFalse)#True

print(FalseorTrue)#True

print(FalseorFalse)#False

print(TrueorFalseorTrue)#True   短路原则

print(FalseorTrueorTrue)#True

成员运算符:in    not in 

注意:一般集合数据结构使用【for循环遍历中,if判断】

身份运算符:is      is not

注意:注意==的区别

print("身份运算符")

a=10

b=10

ifa==b:

print("ok")

else:

print("nook")

ifaisb:

print("ok")

else:

print("nook")

ifid(a) ==id(b):

print("ok")

else:

print("nook")

#总结:is和==的区别:is判断的是地址,==判断的是内容

位运算符:了解

&  |  ^  <<  >>  ~

#位运算符:^

#需求:交换两个变量的值

num1=10

num2=20

#方式一:交叉赋值

# num1,num2 = num2,num1

# print(num1,num2)

#方式二:定义一个第三方变量

# temp = num1

# num1 = num2

# num2 = temp

# print(num1,num2)

#方式三:异或

#规律:一个数异或另外一个数两次,得到的结果为该数本身

num1=num1^num2# num1 = 10 ^ 20

num2=num1^num2#num2 = 10 ^ 20  ^ 20  = 10

num1=num1^num2#num3 = 10 ^ 20 ^ 10  = 20

#方式四:加减法

num1=num1+num2#num1 = 10 + 20

num2=num1-num2#num2 = 10 + 20  - 20 = 10

num1=num1-num2#num1 = 10 + 20  - 10 = 20

#总结:在实际项目开发中,常用方式一和方式二,面试题中,使用方式一,方式三和方式四

5.语句

代码块

5.1if语句

简单if语句【单分支】:要么执行,要么不执行,取决于条件是否为真

语法:

if 条件表达式:

代码块

说明:条件表达式可以由常量,变量,关系运算符,逻辑运算符,身份运算符,成员运算符充当

if-else语句【双分支】:不管条件是否为真,都实现二选一的操作

语法:

if 条件表达式:

代码块1

else:

代码块2

if-elif-else【多分支】:不管有多少个分支,都实现多选一的操作

语法:

if 条件表达式1:

代码块1

elif 条件表达式2:

代码块2

。。。。

else:

代码块n

嵌套if语句:单分支,双分支和多分支任意两者之间都可以进行相互嵌套

注意:在某些情境下,嵌套if语句可以和and逻辑与之间进行相互转换

#1.单分支

num1=10

num2=20

ifnum1==num2:

num1=100

print(num1)

#练习:判断一个数是否是偶数

# num3 = int(input("请输入一个数字:"))

# if num3 % 2 == 0:

#     print("偶数")

# print("奇数")

#2.双分支

# num3 = int(input("请输入一个数字:"))

# if num3 % 2 == 0:

#     print("偶数")

# else:

#     print("奇数")

#练习:从控制台输入两个数,输出较大的数

# n1 = int(input(""))

# n2 = int(input(""))

# if n1 > n2:

#     print(n1)

# else:

#     print(n2)

#3.多分支

# if n1 > n2:

#     print(n1)

# elif n1 < n2:     #elif----->else if

#     print(n2)

# else:

#     print("相等",n1)

#练习:多分支实现的多选一,不管有多少个条件成立

#工作原理:从上往下依次检索,只要找到一个条件成立,则执行相应的代码块,整个if语句结束

n=3

ifn>1:

print("a")

elifn>2:

print("b")

elifn>=3:

print("c")

else:

print("d")

print("over")

#if单分支,双分支和多分之间的区别

ifn>1:

print("a")

ifn>3:

print("c")

else:

print("d")

ifn>2:

print("b")

elifn>=3:

print("c")

else:

print("d")

#4.嵌套if语句

m1=46

m2=8

ifm1>10:

print("m1~~~~~")

#代码块

ifm2>5:

print("m2~~~~~")

else:

print("elese")

ifm1>10andm2>5:

print("m2~~~~~111")

print("fjaghra")

#注意:理论来说,嵌套的层数没有限制,但是,从代码可读性和可维护性来说,建议尽量不要超过三层

5.2while语句

语法:

while 条件表达式:

代码块

说明:while语句和if语句 的区别:在条件表达式成立的情况下,if语句只执行一次,但是while语句至少会执行一次

完整的while语句:四要素

初始化表达式

while 条件表达式:

循环体

循环之后的操作表达式

#需求1:打印10遍hello world

#1.初始化表达式【定义一个变量,用于控制循环的次数】

n=0

#2.条件表达式

whilen<10:

#3.循环体

print("hello world")

#4.循环之后的操作表达式

n+=1

#练习1:打印0~9的数字

n1=0

whilen1<=9:

print(n1)

n1+=1

#练习2:求1~100之间所有整数的和

n2=1

sum2=0

whilen2<=100:

#print(n2)

sum2+=n2#累加

n2+=1

print(sum2)

#练习3:求1~100之间所有偶数的和

#方式一:

# n3 = 0

# sum3 = 0

# while n3 <= 100:

#     sum3 += n3

#     n3 += 2

#方式二:

n3=1

sum3=0

whilen3<=100:

ifn3%2==0:

sum3+=n3

n3+=2

#练习4:在1~100之间求既能被3整除也能被7整除的数的个数

n4=1

count4=0

whilen4<=100:

ifn4%3==0andn4%7==0:

count4+=1

n4+=1

#死循环

"""

while True:

   pass

while 1:

   pass

"""

#else分支:执行时机

#如果条件成立则先执行循环,再接着执行else分支,如果条件不成立,则直接执行else

a=1

whilea>3:

print("hello")

a+=1

else:

print("else")

#嵌套while循环

# b1 = 0

# while b1 < 3:

#     b2 = 0

#     while b2 < 5:

#         print("b1=%d,b2=%d" % (b1,b2))

#         b2 += 1

#     b1 += 1

"""

b1=0,b2=0

b1=0,b2=1

b1=0,b2=2

b1=0,b2=3

b1=0,b2=4

b1=1,b2=0

b1=1,b2=1

b1=1,b2=2

b1=1,b2=3

b1=1,b2=4

b1=2,b2=0

b1=2,b2=1

b1=2,b2=2

b1=2,b2=3

b1=2,b2=4

"""

print("+++++++++++++++")

b1=0

b2=0

whileb1<3:

whileb2<5:

print("b1=%d,b2=%d"%(b1,b2))

b2+=1

b1+=1

"""

b1=0,b2=0

b1=0,b2=1

b1=0,b2=2

b1=0,b2=3

b1=0,b2=4

"""

#九九乘法表

"""

                                           行           列

1x1=1                                        1            1

1x2=2 2x2=4                                 2               2

1x3=3 2x3=6 3x3=9                           3               3

....

1x9=9 2x9=18     .......8x9=72 9x9=81          9            9

规律:

1.行数的取值范围:1~9

2.列数随着行数的变化而变化,列数的最大值和行数相等

"""

line=1

#外层循环:控制行

whileline<=9:

colum=1

#内层循环:控制列

whilecolum<=line:

print("%dx%d=%d"%(colum,line,line*colum),end=" ")

colum+=1

print("")

line+=1

#练习:求10的阶乘【1x2x3....x10】

n1=1

sum1=1

whilen1<=10:

sum1*=n1

n1+=1

5.3for语句

主要用于遍历数据结构

语法:

for  变量  in  数据结构:

循环体

说明:使用for-in可以依次获取某个数据结构中的元素,自动将获取出来的元素赋值给变量

list1= ["hfahf","hello",235,True,18.9]

#for:元素

forelementinlist1:

print(element)

#while:索引

n=0

whilen

print(list1[n])

n+=1

#for:索引

#思路:range(),可以生成一个可迭代对象,可以生成一个和索引相关的列表

"""

range([start,]end[,step])

start:开始数值,默认的值为0

end:结束数值

step:步长,默认的值为1

包头不包尾

"""

print(list(range(10)))

print(list(range(1,10)))

print(list(range(1,10,2)))

forninrange(len(list1)):

print(list1[n])

#练习:求1~100之间所有偶数的和

sum1=0

forn1inrange(1,101):

ifn1%2==0:

sum1+=n1

print(sum1)

sum2=0

forn2inrange(0,-101,-2):

sum2+=n2

print(sum2)

#start,end,step:保持同步

"""

1.如果要指明step,则start,end,step缺一不可

2.如果step为负数,在start和end之间有负数存在

"""

#else分支:for循环执行完毕之后才执行else分支

forelementinlist1:

print(element)

else:

print("else")

#嵌套for

foriinrange(1,10):

forjinrange(1,i+1):

print("%dx%d=%d"%(j,i,i*j),end=" ")

print("")

5.4break和continue

break:直接跳出当前循环

continue:结束当前正在执行的循环,继续下一次循环

说明:break和continue可以应用在while和for,break使用更广泛

n1=0

whilen1<10:

print(n1)

#在Python中,break只能使用在循环中,跟if语句没有任何关系,if语句的存在只是一个条件的限制

ifn1==5:

#break

n1+=1

continue

n1+=1

print("over")

#嵌套循环中

foriinrange(5):#0~4

forjinrange(3):#0~2

print("i=%d,j=%d"%(i,j))

ifj==1:

#跳出的内层循环【就近原则:当前】

break

#在嵌套循环中,break和continue需要跳出哪个循环,则需要在当前循环天添加break和continue语句

#一般单独为一条语句

你可能感兴趣的:(2019-01-15)