Python学习笔记Day01
计算机
概述
- 计算机软件(software):简称软件,是一系列按照特定顺序组织的计算机数据和指令的集合
- 编程语言(programming language):是一形式语言,它制定了一组可用于产生各种输出的指令
- 计算机程序(computer program):简称程序,是由计算机执行的执行特定任务指令的集合
容量
1位 = 1bit
8bit = 1byte = 1字节
1024bytes = 1kbytes =1KB
1024KB = 1Million Bytes = 1MB = 1兆
1024MB = 1Gigabytes
1024GB = 1TB
1024TB = 1PB
什么是python语言?
由荷兰人Guido Van Rossum在1989年创建
是一种解释型、面向对象、动态数据类型的高级程序设计语言
python语言的优点
-
简单易用
-
大量的功能类库支持
-
语言兼容性
-
跨平台移植性
-
代码免费开源
解释器/编译器
在linux中指定解释器的路径
#!/usr/bin/env python
# _*_ coding:uft-8 _*_
print("你好")
运行:解释器 文件路径
在Linux上有一种特殊的执行方法
- 给文件赋予一个可执行的权限
- /a.py 自动去找文件的第一行 = #!/usr/bin/env python a.py
编码
交互式解释器
- 编译器(compile):把高级语言一次性翻译成计算机能识别的机器语言的一种软件
- 全部翻译,再执行。执行速度快
- 解释器(interpreter):把高级语言编写的程序,在执行时,一行一行地翻译成机器语言的一种软件
- 边执行边翻译,方便移植
初识编码
- ASCII,英文,8位表示一个东西,2**8
- Unicode,万国码,32位表示一个东西,2**32
- utf-8,给Unicode压缩,用尽量少的位数表示一个东西,以8个位为单位。最多用4字节=32位表示。中文:3字节=24位表示
- utf-16:压缩到最少2个字节
- gbk:
- gb2312:
python解释器编码
- py2:ASCII
- 在文件头部加上:# * coding:utf-8 *
- py3:utf-8
文件编码
-
建议:编写文件时,保存文件要用utf-8格式
-
以什么编码保存,就要用什么编码方式打开(编码+解码一致),否则会出现乱码
注释
#:单行注释
“”"
多行注释
“”"
输入
user_name = input("请输入你的姓名:")
message = user_name + "烧饼"
print(message)
注意
- input输入得到的内容永远是字符串
- py版本区别
- py2:name = raw_input(“请输入姓名”)
- py3:name = input(“请输入姓名”)
练习
user_name = input("请输入你的姓名:")
password = input("请输入你的密码:")
content = "你的用户名是:" + user_name + ";你的密码是:" + password
print(content)
输出
print(你想要输出的东西)
py版本区别
-
py2: print “你好” #print后接空格
-
py3: print(“你好”)
变量
命名规则
- 变量名只能包含:字母/数字/下划线
- 数字不能开头
- 不能是python的关键字
- 变量名区分大小写
- 建议
- 见名知意:name=“Alex” age=18
- 用下划线链接:Alex_dad=“张三丰”
- 补充:AlexDad=“张三丰” (驼峰式命名)
命名练习
练习01
age = 18
new_age = age + 1
print(new_age)
练习02
name = "Alex"
new_name = name + "sb"
print(new_name)
练习03
age = "666"
new_age = age + "666"
print(new_age)
练习04
age = "666"
new_age = age + 666
print(new_age) # 报错
练习05
age = 6
new_age = age * 2
print(new_age)
练习06
name = "Alex"
new_name = name * 2
print(new_name)
练习07
age = 18
value = age >= 19
print(value)
数据类型
字符串string
- 单引号
- 双引号
- 三引号
数字numbers
-
整型int
-
没有小数部分
包含正数,负数,0-
二进制:以0b开头的0、1串
a=0b110 print(a)
-
八进制:以0o开头的0-7之间的数字串
a3=0o71 print(a3)
-
十六进制:以0x组成的由0-9、a-f构成的串
a4=0xfff8 print(a4)
-
-
-
浮点型float
a=.2 print(a)
-
科学计数法:e后面跟整数用来表示10的指数
height=1.84e2 print(height)
-
-
复数complex
a=5j b=7+2j print(a,b)
-
py2和py3的区别
- py2:超出范围后python自动将其转换成长整型long,整型除法只能保留整数位
- py3:只有int,整型除法保留所有
布尔型bool
- True
- False
列表list
元祖tuple
字典dict
集合set
None:表示为没有(通常用来占位或提供空值,表示返回一个空)
数据类型之间的转换
0/""/[]/()(零、空字符串、空列表、空元祖转换为布尔值时结果为False,其他情况全为True)
数字转字符串
v1 = 666
v2 = str(v1)
print = (v2,type(v2))
字符串转数字
v1 = "666"
v2 = int(v1)
print(v2,type(v2))
数字转布尔值
v1 = 0
v2 = bool(v1)
print(v2)
字符串转布尔值
v1 = ""
v2 = bool(v1)
print(v2)
布尔值转换其他
v1 = True
v2 = int(v1)
print(v2)
v1 = True
v2 = str(v1)
print(v2)
特殊转换
对于or,如果遇到这类写法:
第一个值如果转换成布尔值是真,则value=第一个值
第一个值如果转换成布尔值是假,则value=第二个值
如果有多个or条件,则从左到右依次进行上述流程
value = 1 or 9
print(value)
value = 0 or 9
print(value)
value = 0 or ""
print("----",value,"----")
value = 0 or 9 or 8
print(value)
对于and,如果遇到这类写法:
如果第一个值转换成布尔值是True,则value=第二个值
如果第一个值转换成布尔值是False,则value=第一个值
如果有多个and条件,则从左到右依次进行上述流程
v1 = 1 and 9
v2 = 1 and 0
v3 = 0 and 7
v4 = 0 and ""
v5 = 1 and 0 and 9
print(v1,v2,v3,v4,v5)
运算优先级:有括号先算括号,not>and>or,同一优先级则从左往右计算
v1 = 1 and 9 or 0 and 6
print(v1)
条件判断
初级条件语句
让用户输入性别,如果是男则输出:再见;如果是女则输出:来呀来呀
gender = input("请输入性别:")
if gender == "男":
print("再见")
else:
print("来呀来呀")
elif 条件
让用户输入性别,如果是男,则输出:再见;如果是女,则输出:来呀来呀;如果是人妖:找Ted去,他也是;否则:滚
gender = input("请输入性别:")
if gender == "男":
print("再见")
elif gender == "女":
print(来呀来呀)
elif gender == "人妖":
print("找Ted去,他也是")
else:
print("滚")
print("end")
最简单
gender = input("请输入性别:") #女
if gender == "男":
print("再见")
条件判断练习
练习01:让用户输入一个数字,猜:如果数字>50,则输出:大了;如果数字<=50,则输出:小了
num = input("请输入一个数字:")
number = int(num)
if number > 50:
print("大了")
else:
print("小了")
练习02:用户名密码登陆
user_name = input("请输入用户名:")
password = input("请输入密码:")
if user_name == "Ted" and password == "1234":
print("欢迎光临")
else:
print("用户名或密码错误")
练习03:评分规则
A>=90
B>=80
C>=70
D 其他
用户输入成绩,根据成绩的不同显示不同的级别
score = int(input("请输入成绩:"))
if score >= 90:
print("A")
elif score >=80:
print("B")
elif score >=70:
print("C")
else:
print("D")
练习04(if条件的嵌套):10086
message = """欢迎致电10086
1.话费查询;
2.流量服务;
3.业务办理;
4.人工服务"""
print(message)
index = int(input("请输入你要选择的服务:"))
if index == 1:
print("话费查询")
elif index == 2:
print("流量服务")
elif index == 3:
content = """业务办理
1.修改密码;
2.更改套餐;
3.停机;"""
print("content")
value = int(input("请输入要办理的业务:"))
if value == 1:
print("修改密码")
elif value == 2:
print("更改套餐")
elif value == 3:
print("停机")
else:
print("错误")
elif index == 4:
print("人工服务")
else:
print("输入错误")
综合习题
习题01
v1 =[11,22,33]
v2 =v1
v1.append(666)
print(v2)
习题02
v1 = [11,22,33]
v2 = v1
v1 = [1,2,3,4]
print(v2)
习题03
v1 = "alex"
v2 = v1
v1 ="ritian"
print(v2)
习题04
v = [1,2,3]
values = [11,22,v]
v.append(9)
print(values)
v = [1,2,3]
values = [11,22,v]
values[2].append(99)
print(v)
v = [1,2,3]
values = [11,22,v]
v = 99
print(values)
v = [1,2,3]
values = [11,22,v]
values[2] = 66
print(v)
习题05: ==和is有什么区别?
v1 = [1,2,3]
v2 = [1,2,3]
print(v1 == v2) #比较的是值
print(v1 is v2) #比较的是内存地址
习题06:10086
message = """欢迎致电10086
1.话费查询;
2.流量服务;
3.业务办理;
4.人工服务"""
print(message)
index = int(input("请输入你要选择的服务:"))
if index == 1:
print("话费查询")
elif index == 2:
print("流量服务")
elif index == 3:
content = """业务办理
1.修改密码;
2.更改套餐;
3.停机;"""
print(content)
value = int(input("请输入要办理的业务:"))
if value == 1:
print("修改密码")
elif value == 2:
print("更改套餐")
elif value == 3:
print("停机")
else:
print("错误")
elif index == 4:
print("人工服务")
else:
print("输入错误")
习题07:温度转换(公式:F=C*1.8+32)
TempStr=input('请输入带有符号的温度值:')
if TempStr[-1] in ['F','f']:
C=(eval(TempStr[0:-1])-32)/1.8
print('转化后的温度是{:.2f}C'.format(C))
elif TempStr[-1] in ['C','c']:
F=1.8*eval(TempStr[0:-1])+32
print('转化后的温度是{:.2f}F'.format(F))
else:
print('输入格式错误')
查看内存地址
v1 = [1,2,3]
v2 = [1,2,3]
print(id(v1),id(v2))