python自学笔记1

2018-12-27 07:42:56来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、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))

四、 数据类型

数值型: intfloat
布尔: 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)芒果 82)苹果 93) 香蕉 154)葡萄 55)香芋 10? 请您帮助奶茶店的收银小妹设计一款价格结算系统,要求:
1、顾客可输入15来选择奶茶种类,输入其它数字则输出:
'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! 我们只售卖以上五种奶茶哦!新口味敬请期待!")

 

代码有些地方还可以优化,比如想购买多种口味的奶茶最后一起结账再退出


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:wxPython的简单应用

下一篇:flask wtforms组件详解