前言
blog花了一上午写的,结果笔记本关机了,没有保存,找不到了,找不到了啊,所以说,你看的每一篇blog可能都是我写了2次以上的…….哎!!
代码改变世界,继续.........
Python基础
一、Python的数据类型
1、int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647,而.在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
2、long(长整型)
为什么会有这个概念呢?
因为在Python2.2起,如果放置在内存里的数特别大发生溢出,Python就会自动将整型数据转换为长整型,但是现在,在Python3里就不存在长整型这么一说了,同意都是整型。
3、float(浮点型)
简单理解就是带有小数的数字
4、complex(复数)
复数是由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y呢是复数的虚数部分,这里的x和y都是实数。
5、布尔值(0或1)
就是真和假。
6、查看数据类型(type)
1 >>> type(1) 2 <class 'int'> 3 >>> type(1.2) 4 <class 'float'> 5 >>> type(jixuege) 6 Traceback (most recent call last): 7 File "<stdin>", line 1, in <module> 8 NameError: name 'jixuege' is not defined 9 10 上面报错原因就是没有用双引号引起来,他就不是字符串,而是认为是一个变量。 11 >>> type("jixuege") 12 <class 'str'>
二、for和while循环
这里呢就需要涉及到break和continue的区别了。
如何理解呢?
break: 只能跳出当前循环,当前这一套循环就结束了。
continue: 跳出当次循环,然后呢还会去继续下一次别的循环。
举个栗子:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 #Author: Leon xie 4 5 6 for n in range(4): 7 print(n) 8 for j in range(3): 9 if j <2: 10 #如果j小于2就跳出当次循环,继续一下次循环 11 continue 12 print(n,j)
打印结果如下:
0 0 2 1 1 2 2 2 2 3 3 2
说明:
在第二次的if判断中,我执行条件,如果j小于2就跳出当次循环,继续一下次循环
下面我们就看看break的使用
同样的代码,咋们接着看
#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Leon xie for n in range(4): print(n) break for j in range(3): if j <2: #如果j小于2就跳出当次循环,继续一下次循环 continue print(n,j)
打印结果如下:
0
小结:
个人来说明一下,二者的区别,continue呢用于我有很多次循环,然后呢,我不希望哪次循环执行下面的动作,就可以了使用continue ,而break呢就是我这次循环了以后我想跳出去不在循环,或者呢就是我写了一段代码,我想跳出去看看代码是否能执行,就可以用break呢。
三、Python的数据类型
1、整型int
可以直接理解为整数
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647,在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
2、浮点型float
可以直接理解为带小数的数字。
3、复数complex
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
4、布尔值(0或1)
表示真或者假
5、查看数据类型
使用type即可。
>>> type("xiedi") <class 'str'> >>> type("2") <class 'str'> >>> type(2.2) <class 'float'> >>> type(2) <class 'int'> >>>
这里有个地方需要注意,就是数字不需要加引号,如果加了就是字符串。
四、Python字符串基本操作
1、判断是不是合法的标识符isidentifier
name="ABC" print(name.isidentifier()) 打印结果 True
2、首字母大写capitalize
name= 'abc' print(name.capitalize()) 打印结果 Abc
3、计数count
name= 'abc' print(name.count("a")) 打印结果 1
4、位于中心,用-来补充center
name= 'abc' print(name.center(50,"-")) 打印结果 -----------------------abc------------------------
5、判断是否以c结尾endswith
name= 'abc' print(name.endswith("c")) 打印结果 True
6、把回车换成空格expandtabs
name = "a\tbc" print(name.expandtabs(tabsize=10)) 打印结果 a bc
7、查看某字符下标find
name= 'abc' print(name.find('c')) 打印结果 2
8、将字符小写lower
print("XIEDI".lower()) 打印结果 xiedi
9、将字符大写upper
print("xiedi".upper()) XIEDI
五、Python列表基本操作
记住一句话,叫做顾首不顾尾
首先我们来定义一个列表
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
接下来,我们就对这个列表来进行一系列的操作
1、切片
取值,取第一个和第二个
print(name[0],name[1]) 打印结果 jixuege dajiba
说明:
上面的0和1指的是小标,从左到右顺序就是从0开始一直到4
打印一个区间
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] print(name[:2]) 打印结果 ['jixuege', 'dajiba']
打印最后一个
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] print(name[-1]) 打印结果 youtianai
2、追加
比如说我想追加一个人进去
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] name.append("xiha") print(name) 打印结果 ['jixuege', 'xitong', 'dajiba', 'youhua', 'boduoye', 'cangjinkong', 'youtianai', 'xiha']
这个会追加到末尾
还有一种就是插入insert
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] name.insert(2,"youhua") print(name) 打印结果 ['jixuege', 'dajiba', 'youhua', 'boduoye', 'cangjinkong', 'youtianai']
3、修改
直接修改即可
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] name[2]="wuming" print(name) 打印结果 ['jixuege', 'dajiba', 'wuming', 'cangjinkong', 'youtianai']
4、删除
直接清空
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] name.clear() print(name) 打印结果 []
删除指定元素
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] name.remove("jixuege") print(name) 打印结果 ['dajiba', 'boduoye', 'cangjinkong', 'youtianai']
删除指定下标
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] del name[2] print(name) 打印结果 ['jixuege', 'dajiba', 'cangjinkong', 'youtianai']
不指定下标删除最后一个
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] name.pop() print(name) 打印结果 ['jixuege', 'dajiba', 'boduoye', 'cangjinkong']
指定下标
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"] name.pop(1) print(name) 打印结果 ['jixuege', 'boduoye', 'cangjinkong', 'youtianai']
六、蛋疼的购物车程序练习
要求:
1、用户输入工资,打印出商品的列表
2、用户根据编号来进行购买商品
3、用户选择商品之后,先检测额度是否够用,直接扣款和温馨提示余额不足
4、可以随时退出,退出并打印出已购商品列表和余额。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 #Author: Leon xie 4 5 product_list = [ 6 ["Iphone",5800], 7 ["MAC PRO",16800], 8 ["Bike",800], 9 ["Coffee",30], 10 ] 11 12 shopping_list = [] 13 14 salary = input("请输入你的工资:") 15 #判断是否为数字 16 if salary.isdigit(): 17 salary = int(salary) 18 while True: 19 for index,item in enumerate(product_list): 20 #打出菜单 21 print(index,item[0],item[1]) 22 23 choice = input("请选择要购买的商品编号[quit]>>:") 24 if choice.isdigit(): 25 choice = int(choice) 26 if choice >=0 and choice < len(product_list): 27 #判断钱是否够用 28 p = product_list[choice] 29 30 if p[1] <= salary: 31 shopping_list.append(p) 32 salary -= p[1] 33 print("Added \033[32;1m[%s]\033[0m into your shopping cart,and your current balance is \033[1;31;40m%s\033[0m"%(p,salary)) 34 else: 35 print("钱不够,你只有 \033[5;31;42m[%s] \033[0m "% salary) 36 else: 37 print("没有此商品...") 38 39 elif choice == "quit": 40 print("已购买的商品".center(50,"-")) 41 for i in shopping_list: 42 print(i) 43 print("Your left balance is ",salary) 44 exit() 45 else: 46 print("未识别,请输入正确的指令!!")
购物车效果如下所示: