一、Python介绍
1 变量:python是一个动态类型语言 在定义变量类型的时候是不需要指定变量类型的 a=1000 b="hello"
java是一个静态类型的语言 在定义变量类型的时候需要指定变量类型 int a=1000 string b="hello"
2 PHP 是弱类型 动态语言 java 是强类型 静态语言 python 是强类型 动态语言
3 变量赋值 左边赋值给右边
1 a = 100
2 print(a)
命名规则 只能以字母,数字,下划线组成 不能以数字开头,只能以字母、下划线开头 不能包含空格 变量名要见名知意 严格区分大小写 驼峰式命名:UserNamePassword 避免python中的关键字 函数名 例如:if for 如何查看python中的关键字:python交互式下 输入 help("keywords")
4.如何检查变量类型 type()
1 name1 = 100
2 name2 = 'xiaoming'
3 print(type(name1))
4 print(type(name2))
5.关键字:在python中具有特殊功能的字符 6.标识符:在开发过程中,在自定义的一些名称都是标识符 标识符有字母 数字 下划线组成 区分大小写 7.多个变量引用同一个变量叫做共享引用 在交互模式下 数值类型0-256(之间的数值)python自动缓存 短的字符串也会被缓存
==判断字面值的意思
1 name1 = 100
2 name2 = 100
3 print(name1 == name2)
is判断引用对象地址是否相同
1 name1 = 100
2 name2 = 100
3 print(name1 is nme2)
检测对形象的地址池
1 name1 = 100
2 name2 = 200
3 print(id(name1))
4 print(id(name2))
python的环境
python环境包括了 IDLE 和交互式环境,还有解释器
IDLE负责编写代码
解释器负责一行一行的解释运行代码
与编译类不同,Java需要将.java文件通过编译器编译成.class文件
JVM(编译器)执行.class文件。
python shell (交互式命令行) 用于验证测试代码
标准库
模块 + 函数 = 标准库
模块在标准库里
函数在模块中 import xxx from xxx import xxx
dir(xxx模块) :查看某个模块下的函数
二、输入与输出(input and print)
input():程序执行过程中,接受用户所输入的内容
print():程序执行过程中,输出的内容
1.直接输出
1 username = input("请输出您的用户名:")
2 password = input("请输出您的密码:")
3
4 print(username)
5 print(password)
6 print(type(username))
7 print(type(password))
注意:无论输入的是什么都会默认转成字符串类型。
2.输出多个单个变量
1 name = "老王"
2 age = 12
3
4 print("我叫"+name)
5 print("我叫"+name+",今年"+str(age)+"岁")
3.换行和不换行
1 print("我是文本",end="")
2 print("不换行")
注意:end内可以添加字符和空格可以当做插入内容
转义字符
1 print("中国\n北京")
2 print("中国\t北京")
3 print("中国\\北京")
4 print(r"中国\n北京")
5 print(R"中国\n北京")
\n:换行
\t:空格
\需要两个\\表示
R和r表示原样输出强制不换行
常用的格式化符号
%s:字符型
%d:整形型
%f:浮点型
%.1f:浮点型只显示小数点一位
4.格式化输出
1 print("我叫%s"%name)
2 print("今年%d岁"%age)
3 print("身高:%f"%height)
4 print("身高%.2f"%height)
5 print("我叫%s,今年%d岁,身高%.2f"%(name,age,height),)
注意:格式化输出如果遇到显示%,要用两个%%来表示原来输出
1 n = 99.99
2 print("您战胜了%s%%全国的用户"%n)
三、format函数
格式化输出字符串的函数,可以快速的处理各种字符串
format函数中定义一个变量
1 name = "马大哈"
2 age = 11
3 height = 180
4 print("姓名:{0},年龄:{1},身高:{2},体重:{weight}".format(name,age,height,weight="80"))
占位符中添加一些指令的高级语法
1 print("{}={}".format("python","123.1111"))
2 print("{0}={1}".format("python","123.1111"))
3 print("{0}={1}".format("1+1",2))
保留十个字节
不同类型,展现的结果有差别
1 print("{0:10}={1:10}".format("py",123456))
2 py = 123456
3 # 字符型左对齐“py”
4 # 整形右对齐123456
对齐
右对齐 “>”
左对齐 "<"
居中 "^"
“:”后不指定内容默认用空格填充,指定内容的话只能是一个字符
冒号左边表示格式化字符的位置, 冒号右边表示占多少字符
以浮点型显示
:.2f保留两位小数
:f以小数方式表示
1 print("{:f},{:.3f},{}".format(3.14,3.1415926,3.1415926))
format进制的转换
{:x} 十六进制
{:o} 八进制
{:b} 二进制
1 print("{:x},{:o},{:b}".format(230,230,230))
四、 数据类型
数值型: int、float
布尔: True False
空对象: None
序列: list(列表),tuple(元组),dict(字典),str,range()
如何去检查数据类型
type()
1 print(type(18))
2 print(type("18"))
3 print(type(1.88))
布尔类型的本质
1 True == 1 False == 0
2 print(True == 1)
3 print(False == 0)
bool()
1 print(bool(10))
2 print(bool(-1))
3 print(bool("123") )
4 print(bool(""))
5 print(bool([]))
0, 0.0 ,None , "", [] , () 这些都会被当做False处理
内置函数:四舍五入
round()
1 print(round(3.6))
2 print(round(3.1))
强制类型转换
字符串强转int
int()
1 str_int = "3"
2 str_new = int(str_int)
3 print(str_new)
4 print(type(str_new))
字符串强转float
float()
1 str_float = "3.14"
2 print(float(str_float))
3 print(type(float(str2_float)))
int强转str
str()
1 num = 12
2 print(str(num))
注意:对字符串操作不会改变本身,会返回一个新的结果
eval() 将字符串自动判断并转换成合适的类型
1 e1 = eval("1.23")
2 e2 = eval("11")
3 print(e1)
4 print(e2)
5 print(type(e1))
6 print(type(e2))
二进制 0b
八进制 0o
十六进制 Ox
1 print(0b1101)
2 print(0o177)
3 print(0x9ff)
bin() 将十进制转换成二进制
hex() 将十进制转换成十六进制
oct() 将十进制转换成八进制
print(bin(12))
print(hex(12))
print(oct(12))
ascii
ord() 将字符转换成ascii值
chr() 接受的是0-255,返回的是对应的ascii值的字符
1 print(ord("a"))
2 print(chr(97))
注意:python 当中没有字符的概念 只有字符串。单个字符和一串字符都是字符串
五、使用两个模块
math
decimal
math.floor() 向下取整(坐标轴左边取值)
math.ceil() 向上取整(坐标轴右边取值)
math.trunc() 截断(往0的方向取整)
1 import math
2 print(math.floor(5.66))
3 print(math.ceil(5.66))
4 print(math.trunc(-1.66))
圆周率
1 print(math.pi)
2 pow() 2的3次方
3 print(pow(2,3))
开平方
1 print(math.sqrt(9))
浮点运算
1 import decimal
2 n = decimal.Decimal("0.1")+decimal.Decimal("0.1")+decimal.Decimal("0.1")-decimal.Decimal("0.3")
3 print(n)
4
5 from decimal import Decimal
6
7 n1=Decimal("0.1")+Decimal("0.3")
8 print(n1)
注意:未引用模块的时候无法使用模块
六、if条件判断语句
分支语句
如果 条件(True):
需要执行的代码块(代码组)
否则 条件(False):
需要执行的代码块
if和else里面的代码块需要缩进否则会有错误
一个条件
1.如果是工作日就去上班,否则在家打LOL
1 day = input("今天是星期几?")
2 day = int(day)
3 if (day<6):
4 print("苦逼的工作日,赶紧去上班")
5 else:
6 print("终于休息了,玩吧五连坐,重来没赢过")
注意:day是字符串类型需要转换才能和int型的6比较否则会报错
多个条件
2.周一去公司,周二去拜访客户,周三到周五去出差,周末休息
1 day = input("今天是星期几?")
2 day = int(day)
3 if day == 1:
4 print("去公司")
5 elif day == 2:
6 print("拜访客户")
7 elif day >= 3 and day <= 5:
8 print("去出差")
9 elif day == 6 or day == 7:
10 print("周末休息")
11 else:
12 print("大哥一周就七天,输出错误了吧,请重新运行")
else可以不写if必须写
括号可以不写
if嵌套
3.如果今天是工作日就去上班,否则(周末)天气好就去爬山,天气不好,网吧五连坐。
1 day = input("今天是星期几?")
2 day = int(day)
3 if day<6:
4 print("苦逼的工作日,赶紧去上班")
5 else:
6 n = input("请输入天气状况:1.天气晴朗 2.重度雾霾")
7 n = int(n)
8 if n == 1:
9 print("天气正好,我们去爬山吧")
10 else:
11 print("珍爱生命,请勿出行")
奶茶店盛大开业啦!今天,门店前立出了以下招牌:
• 奶茶店售卖奶茶,快来选购:
1)芒果 8元 2)苹果 9元 3) 香蕉 15元 4)葡萄 5元 5)香芋 10元
• 请您帮助奶茶店的收银小妹设计一款价格结算系统,要求:
1、顾客可输入1—5来选择奶茶种类,输入其它数字则输出:
'Woops! 我们只售卖以上五种奶茶哦!新口味敬请期待!'
2、顾客可输入购买数量,根据奶茶种类和数量计算总价。
3、顾客可输入是否为本店会员,会员可以享受9折优惠。
4、输出顾客购买的详细信息,包括货品种类、购买数量、总价。若是会员输出会
员价。建议大家使用格式化输出
1 print("奶茶店售卖奶茶,快来选购:")
2 print("1.芒果味奶茶 8元, ")
3 print("2.苹果味奶茶 9元, ")
4 print("3.香蕉味奶茶 15元, ")
5 print("4.葡萄味奶茶 5元 ,")
6 print("5.香芋味奶茶 10元。")
7 w1 = int(input("请输入要购买的商品编号:"))
8 if w1 == 1:
9 s1 = int(input("请输入购买的数量"))
10 jiage =8 * s1
11 h1 = input("请问是否为会员(是的话请输入1,不是请输入2)")
12 h1 = int(h1)
13 if h1 == 1:
14 jiage *= 0.9
15 print("您购买了芒果味奶茶{0}个会员打九折请付款{1}".format(s1,jiage))
16 elif h1 == 2:
17 print("您购买了芒果味奶茶{0}个一共{1}".format(s1, jiage))
18 elif w1 == 2:
19 s1 = int(input("请输入购买的数量"))
20 jiage = 9 * s1
21 h1 = int(input("请问是否为会员(是的话请输入1,不是请输入2)"))
22 if h1 == 1:
23 jiage *= 0.9
24 print("您购买了苹果味奶茶{0}个会员打九折请付款{1}".format(s1, jiage))
25 elif h1 == 2:
26 print("您购买了苹果味奶茶{0}个一共{1}".format(s1, jiage))
27 elif w1 == 3:
28 s1 = int(input("请输入购买的数量"))
29 jiage = 15 * s1
30 h1 = int(input("请问是否为会员(是的话请输入1,不是请输入2)"))
31 if h1 == 1:
32 jiage *= 0.9
33 print("您购买了香蕉味奶茶{0}个会员打九折请付款{1}".format(s1, jiage))
34 elif h1 == 2:
35 print("您购买了香蕉味奶茶{0}个一共{1}".format(s1, jiage))
36 elif w1 == 4:
37 s1 = int(input("请输入购买的数量"))
38 jiage = 5 * s1
39 h1 = int(input("请问是否为会员(是的话请输入1,不是请输入2)"))
40 if h1 == 1:
41 jiage *= 0.9
42 print("您购买了葡萄味奶茶{0}个会员打九折请付款{1}".format(s1, jiage))
43 elif h1 == 2:
44 print("您购买了葡萄味奶茶{0}个一共{1}".format(s1, jiage))
45 elif w1 == 5:
46 s1 = int(input("请输入购买的数量"))
47 jiage = 10 * s1
48 h1 = int(input("请问是否为会员(是的话请输入1,不是请输入2)"))
49 if h1 == 1:
50 jiage *= 0.9
51 print("您购买了香芋味奶茶{0}个会员打九折请付款{1}".format(s1, jiage))
52 elif h1 == 2:
53 print("您购买了香芋味奶茶{0}个一共{1}".format(s1, jiage))
54 else:
55 print("Woops! 我们只售卖以上五种奶茶哦!新口味敬请期待!")
代码有些地方还可以优化,比如想购买多种口味的奶茶最后一起结账再退出