初识Python Day2

模块
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。
sys
# Author:zhao kang
import sys
int(sys.argv)
#输出
$ python test.py helo world
['test.py', 'helo', 'world']  #把执行脚本时传递的参数获取到了
 
os
# Author:zhao kang
import os
os.system("df -h") #调用系统命令
 
1、数字
2 是一个整数的例子。
长整数 不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么?。
int(整型)
  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
   
  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
complex(复数)
  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:Python中存在小数字池:-5 ~ 257
 
2、布尔值
  真或假
  1 或 0
3、字符串
"hello world"
万恶的字符串拼接:
  python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化输出
 
PS: 字符串是 %s;整数 %d;浮点数%f
字符串常用功能:
  • 移除空白
  • 分割
  • 长度
  • 索引
  • 切片
4.三元运算
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
5.列表
 1 names=["张三","李四","王二","麻子"]
 2 names.append("李明")#append在列表最后面追加一个值
 3 names.insert(1,"赵康")#insert 有两个参数 第一个参数self 插入的位置 第二个是插入的值
 4 names[2]="李迪" #用下标修改在列表中的位置
 5 #删除NO.1
 6 names.pop(1)#用下标删除列表的值
 7 #删除NO.2
 8 del names[1]
 9 #删除NO.3
10 names.remove("张三")
11 
12 print(names)#切片
13 
14 print(names.index("麻子"))#查找麻子在列表中的索引
15 print(  names[names.index("麻子")] )#查找列表中的麻子
16 print(names.count("麻子"))#统计列表中有多少个麻子
17 names.clear()#清除列表
18 names.reverse()#列表倒序
19 names.sort()#排序
20 names2=[1,2,3,4]
21 names.extend(names2)#相当于SQL里面的LEFT JOIN       extend(合并的意思)
22 del names2#删除变量
23 #多成列表
24 import copy
25 name3=["AAA","BBB",["QQQ","WWW"],"CCC","DDD"]
26 
27 name4=copy.deepcopy(name3)#完全COPY
28 print(name3)
29 print(name4)
30 
31 name3[1]="aaa"
32 name3[2][0]="qqq"
33 print(name3)
34 print(name4)
35 
36 
37 
38 #列表循环
39 
40 for i in name3:
41     print(i)
42 #切片拓展
43 print(name3[0:-1:2])#  等于print(name3[::2])在列表中0 或者-1可以不用写
View Code
6.元祖

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
语法
names = ("张三","李四","王二")
它只有2个方法,一个是count,一个是index,完毕。

7.复习
程序练习
请闭眼写出以下程序。
程序:购物车程序
需求:
启动程序后,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额

代码:

 1 # Author:zhao kang
 2 all_Shopping=[
 3     ("Iphon",6000),
 4     ("Mac Pro",12000),
 5     ("Wacth",2100),
 6     ("Book",80),
 7     ("Dog",1500),
 8     ("Cat",800)
 9 ]#创建列表保存商品
10 Shopping_list=[] #临时列表用于保存数据
11 Wages=input("请输入工资:")#让用户输入工资
12 if Wages.isdigit():#输入的工资如果是int类型就进入判断语句,否则反之
13     Wages=int(Wages)#将工资转化为int类型
14     while True:#死循环,一直打印商品
15         for index,i in enumerate(all_Shopping):#enumerate获取list下标
16             print(index,i)
17         Shopping=input("请选择商品编号:")#让用户输入商品编号
18         if Shopping.isdigit():
19             Shopping=int(Shopping)
20             if Shopping<len(all_Shopping) and Shopping>=0:#判断输入的商品是否在list中
21                 P_item=all_Shopping[Shopping]#通过下标去找商品
22                 if P_item[1]<=Wages: #买的起
23                     Shopping_list.append(P_item)
24                     Wages-=P_item[1]
25                     print("商品%s已经加入购物车,你的余额是 \033[31;1m %s\033[0m"%(P_item,Wages))
26                 else:
27                     print("\033[41;1m你的余额只剩%s,买个锤子啊\033[0m"%(Wages))
28             else:
29                 print("改商品%s不存在,请选择商品"%Shopping)
30 
31 
32 
33         elif Shopping=="q":
34             print("-------已经购买的商品列表-------")
35             for p in Shopping_list:
36                 print(p)
37             print("你的余额是%s"%Wages)
38             exit()
39 
40         else:
41             print("错误选项")
42 else:
43     print("请输入正确的工资")
View Code

8.字符串操作

 1 name="zhaokang"
 2 name.capitalize() #首字母大写
 3 name.count("a")#统计有几个相同的值,比如说“a”打印出两个
 4 name.center(50,"-")
 5 #第一个参数为多少个字符,不够用-代替然后把name居中显示
 6 #效果 ---------------------zhaokang---------------------
 7 name.endswith("g")#判断字符串以什么结尾,返回Ture 或 false
 8 name.expandtabs()
 9 print(name.find())#找下标
10 #如print(name[name.find("h"):3])
11 name.format()
12 #列子
13 name="my name is {name} and {year} "
14 name.format(name="zhao kang " ,year=12)#格式化字符串
15 name.format_map()
16 #列子
17 name="my name is {name} and {year} "
18 name.format({'name':'zhao kang' ,'year':12})
19 
20 print("12".isdigit()) #判断是否为整数
21 print("12as".isalnum()) #判断是否为阿拉伯数字和字母.
22 print("aa".isalpha())#判断是否为纯英文字符
23 print("3.14".isdecimal())#判断是否为纯英文字符
24 print("_a".isidentifier())#判断是否为合法的变量名
25 print("a".islower())#判断是否为小写
26 print("a".isspace())#判断是否为空格
27 print("My Name is".istitle())#判断依据为每个首字母大写
28 print("MY".isupper())#判断是否为大写
29 print(",".join(["1","2","3"]))#输出1,2,3
30 print("zhao kang".replace("a","A",2))#输出结果zhAo kAng
31 print("1+2+3+4".split("+"))#输出结果['1', '2', '3', '4']
View Code

9.字典

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
语法:

1 info = {
2 'stu1101': "TengLan Wu",
3 'stu1102': "LongZe Luola",
4 'stu1103': "XiaoZe Maliya",
5 }

字典的特性:
dict是无序的
key必须是唯一的,so 天生去重
增加

1 >>> info["stu1104"] = "苍井空"
2 >>> info
3 {'stu1102': 'LongZe Luola', 'stu1104': '苍井空', 'stu1103': 'XiaoZe Maliya', 'stu1101': 'TengLan Wu'}

修改

1 >>> info['stu1101'] = "武藤兰"
2 >>> info
3 {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1101': '武藤兰'}

删除

>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1101': '武藤兰'}
>>> info.pop("stu1101") #标准删除姿势
'武藤兰'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'}
>>> del info['stu1103'] #换个姿势删除
>>> info
{'stu1102': 'LongZe Luola'}
>>> 
>>> 
>>> 
>>> info = {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'}
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'} #随机删除
>>> info.popitem()
('stu1102', 'LongZe Luola')
>>> info
{'stu1103': 'XiaoZe Maliya'}

查找

>>> info = {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'}
>>> 
>>> "stu1102" in info #标准用法
True
>>> info.get("stu1102") #获取
'LongZe Luola'
>>> info["stu1102"] #同上,但是看下面
'LongZe Luola'
>>> info["stu1105"] #如果一个key不存在,就报错,get不会,不存在只返回None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'stu1105

字典循环

扫描二维码关注公众号,回复: 5175589 查看本文章
#方法1
for key in info:
print(key,info[key])

#方法2

for k,v in info.items(): #会先把dict转成list,数据里大时莫用
print(k,v)

猜你喜欢

转载自www.cnblogs.com/ZKPython/p/10390025.html