Python基础 之 变量、用户交互、if条件语句、while循环语句、编码、逻辑运算

时间:2021-05-14 21:00:17

一、Python介绍

Python 崇尚优美、清晰、简单

Python是一门动态解释型的强制性定义的语言。

二、编译型和解释型的区别

  • 编译型:一次性将所有与程序编译成二进制文件。
    • 缺点:开发效率低,不能跨平台。
    • 优点:运行速度快。
    • 比如:C、C++等。
  • 解释型:当程序执行时,一行一行地解释。
    • 优点:开发效率高,可以跨平台。
    • 缺点:运行速度慢。
    • 比如:Python、Php等。

三、变量

1、定义:将一些运算的中间结果暂存到内存中,以便后期使用。

2、命名规范:1)必须由数字、字母、下划线任意组合,但不能与数字开头;

 2)不能是python中的关键字;

  3)变量具有可描述性;

 4)不能是中文。

3、python中的关键字:

['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

4、命名方式:

1)驼峰式(单词首字母大写)

2)下划线(字母小写)

四、常量

定义:一直不变的量。

常量名:全部大写。

例如:BIR_OF_CHINA=1949

五、注释

注释:方便自己和他人理解代码。

单行注释:#

多行注释:三引号之间(单引号或双引号都行)。

例如:'''被注释内容''' 或 """被注释内容"""。

六、基础数据类型初始

数字:Int  (整型)

例:23,34,67

加:+   减:-   乘:*   除:/   取余:%

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

字符串:Str

在Python中,凡是在引号里面的,都是字符串,单双引号都可以。但是,多行字符串必须用多引号。

例如:

msg = '''
今天我想写首小诗,
歌颂我的同桌,
你看他那乌黑的短发,
好像一只炸毛鸡。
'''
print(msg)

可相加:字符串中的拼接;

注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

可相乘:str*int

字符串转化为数字:int(str)条件:str必须是数字组成的

数字转化为字符串:str(int)

布尔值:bool

只有两种结果:True 或False

七、用户交互

1、等待输入

2、将你输入的内容赋值给前面变量

3、input出来的数据全部是字符串型

例如:打印姓名

name=input("请输入你的名字:")
print(name)

八、IF条件语句

第一种:

if    条件:

结果

例如:

if 5>4
print(666)

第二种:

if    条件:

结果

else    条件:

结果

例如:

if 5>4
print(666)
else:
print(999) 

第三种:

if    条件:

结果

elif  条件:

结果

else    条件:

结果

例如:

num=input("请输入你想要猜的数字:")
if num==1:
print("一起吃饭")
elif num==2:
print("一起逛街")
elif num==3:
print("一起旅游")
else:
print("哪都不去")

第四种:嵌套

例如:

name=input("请输入你猜的名字:")
age=input("请输入你猜的年龄:")
if name=="GY":
if age=="":
print("猜对了")
else:
print("年龄错了")
else:
print("猜错了,真笨")

九、While循环语句

第一种:

while     条件:

循环体

无限循环

终止循环的方法:

1、改变条件,使其不成立;

2、break;

例如:1、输出1-100之间所有的数。

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

2、输出1-100之间所有的奇数。

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

3、使用while循环输入1 2 3 4 5 6 8 9 10。

count=0
while count <10:
count=count+1
if count==7:
continue
print(count)

4、用户登陆(登陆次数不能超过三次)

time=0
while time<3:
username=input("请输入用户名:")
password=input("请输入密码:")
if username=="" and password=="":
print("登陆成功!")
break
else:
print("用户名或密码不正确,请重新输入!")
time=time+1

第二种:while...else...

当while循环被break打断,不执行else的结果;反之,则执行else.

例如:(不被break打断,执行else语句)

count = 0
while count <= 5 :
count += 1
print("Loop",count) else:
print("循环正常执行完啦")
print("-----out of while loop ------")

输出结果:

Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------

反之:(被break打断,则不执行else语句)

count = 0
while count <= 5 :
count += 1
if count == 3:break
print("Loop",count) else:
print("循环正常执行完啦")
print("-----out of while loop ------")

输出结果:

Loop 1
Loop 2
-----out of while loop ------ 

十、格式化输出  format

按顺序输出

% 占位符      s 字符串     d:digit  数字

%% 只是单纯地输出%

例:3%%    则输出3%

例如:打印名片

name=input("请输入姓名:")
age=input("请输入年龄:")
job=input("请输入职业:")
hobby=input("请输入爱好:")
mag='''-----info of %s-----
Name: %s
Age: %d
Job: %s
Hobby: %s
------------end------------''' % (name,name,int(age),job,hobby)
print(mag)

十一、初始字符集

电脑 电报的输出,存储是010101010

最早的“密码本”ascii,涵盖了英文字母大小写,特殊字符,数字,只能表示256种可能性,太少

后来创办了万国码unicode。    16位表示一个字符     32位表示一个字符

unicode升级utf-8、utf-16、utf-32

8位=1字节

utf-8  一个字符最少用8位去表示,英文用8位(1字节),欧洲文字用16位去表示(2字节),中文用24位去表示(3字节)

utf-16 一个字符最少用16位去表示

gbk  中国人自己发明的,一个中文用2个字节,英文用一个字节

1bit:一位    8位=1字节    1bytes:一个字节

bit、bytes、Kb、Mb、Gb、Tb的关系:

1Bit:       8bit=1Byte

1Byte       1024Bytes=1Kb

1Kb         1024Kb=1Mb

1Mb         1024Mb=1Gb

1Gb         1024Gb=1Tb

十二、逻辑运算

and    or     not

优先级:()>not>and>or

X and Y       X为真时,返回Y

X  or   Y      X为非零(真)时,返回X

int------>bool     非零转化为bool,则为True;0转化为bool,则为False.

bool---->int      只有两个值,真为1,假为0.

例如:

1、判断下列逻辑语句的True,False.

1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

2、求出下列逻辑语句的值。

1)8 or 3 and 4 or 2 and 0 or 9 and 7
2)5 and 9 or 10 and 2 or 3 and 5 or 4 or 5

3、计算结果

1)6 or 2 > 1
2)0 or 5 < 4
3)3 and 2 > 1
4)3 > 1 and 0
5)3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2

十三、小知识点总结

1、=、==、is、id分别是?

= 赋值         ==比较值         is比较内存地址         id(内容) 打印id是多少

2、数字、字符串

数字的范围:-5------256

字符串:1)、不能含有特殊字符

2)、s*20是同一个字符,s*21级以后都是两个地址

数字和字符串在以上范围内为了节省空间,存入了同一个内存地址,也就是小数据池。

注意:其他数据类型是没有小数据池,例如:list、dict、tuple、set.

3、编码:ascii、unicode、utf-8、gbk

1)、各个编码之间的二进制,是不能互相识别的,会产生乱码。

2)、文件的存储、传输,不能是unicode,(存储空间太大)(只能是utf-8、utf-16、gbk、gb2312、ascii等)

Python3大环境

str在内存中是用unicode编码存储的。

bytes类型是以utf-8、gbk、gb2312、ascii存储的。

对于英文:

str:表现形式:s="alex"

编码方式:010101010          unicode

bytes:表现形式:s=b"alex"

编码方式:000101010          utf-8、gbk、gb2312、ascii

对于中文:

str:表现形式:s="alex"

编码方式:0101010101          unicode

bytes:表现形式:s=b'x\e91\e91\e01\e21\e31\e32

编码方式:000101010          utf-8、gbk、gb2312、ascii

encode编码   如何将str转化为bytes

内部编码:unicode------>gbk/utf-8

英文

s1="alex"
s11=s1.encode("utf-8")
s11=s1.encode("gbk")
print(s11) #结果:b'alex'

中文

s2="中国"
s22=s2.encode("utf-8") #6字节
s22=s2.encode("gbk") #4字节
print(s22) #结果:b'\xd6\xd0\xb9\xfa'