模块

sys模块:sys模块是用c语言写的,所以在lib下是不会有sys.py这个文件存在

1 import sys
2 print(sys.path)   #打印环境变量
3 print(sys.argv)   #打印相对路径

os模块

1 # author:"Jason lincoln"
2 import os
3 #cmd_res=os.system("dir") #只执行命令,不保存结果
4 cmd_res = os.popen("dir").read()
5 print("-->",cmd_res)
6 os.mkdir("new_dir") #创建一个目录

 Pyc是什么鬼?

当程序执行的时,python内部会先将源代码编译成所谓的字节码的形式,这些字节码可以提高执行速度。python将把程序的字节码保存为一个以.pyc为扩展名的文件(".pyc"就是编译过的“py”源代码)。下一次运行程序时,如果你在上次保存字节码之后没有修改过源代码的话,python将会加载.pyc文件并跳过编译这个步骤。当python必须重新编译时,它会自动检查源文件和字节码文件的时间戳:如果你又保存了源代码,下次程序运行时,字节码将会自动重新创建。

python的数据类型 

整型(int):python2分长整型和整型,整型的内存最大为2的32次方字节

浮点型(float):比如小数

布尔值:真或假 1或0

字符串: "helloword"

数据运算

运算符

+  两个数相加

-

*

% 取模,例如9%4等于1

** 例如 2**3等于8

//  例如9//4等于2

比较运算

== 等于

!= 不等于

<> 不等于

>

<

>=

<=

赋值运算

==

+=   c+=a等效于c=c+a

-=    c-=a等效于c=c-a

*=    c*=a等效于c=c*a

%=    c%=a等效于c=c%a

//=    c//=a等效于c=c//a

**=    c**=a等效于c=c**a

逻辑运算

and 布尔“与” ,x和y同时为真即x and y为真,否则为假

or   布尔“或”,x和y只要有一个为真即 x or y 为真 ,X和y同时为假则x or y为假

not  布尔“非”,x为真则返回为假,x为假则返回为真

成员运算

in         如果在指定序列中找到值返回ture,否则返回Fasle.

in not   如果在指定的序列中没有找到值就返回ture,否则返回false

身份运算

is        is是判断两个标识符是不是引用自一个对象

is not  is not 是判断两个标识符是不是引用自不同对象

位运算

&      按位与运算 两位同时为“1”,结果才为“1”,否则为0

|       按位或运算 只要有一个为1,其值为1

^      按位异或  相同为“0”,不同为“1”

x=0101,y=1011
x^y==1110

~      对一个二进制数按位取反,即将0变1,1变0。

<<    a = a << 2 将a的二进制位左移2位,右补0。若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。

a=0011 0011 #十进制等于51
a==a<<2
a==1100 1100 #十进制等于204

>>   a = a >> 2 将a的二进制位右移2位

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

操作数每右移一位,相当于该数除以2。

a=1100 1100 #十进制为204
a==a>>2
a=00110011 #十进制为51

bytes数据类型

三元运算

1 # author:"Jason lincoln"
2
3 a,b,c=1,3,5
4 d=a if a>b else c
5 print(d)

输出“5”

python3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分,文本总是unicode,由str类型表示,二进制数据则由byte类型表示。

encode和decode的转换

列表的使用

列表

 # author:"Jason lincoln"

 names=["Zhangyang","GuYun","Xuliangchen","xiangpeng"]
 #print(names)
 #print(names[0],names[2])
 # 切片
 #print(names[1:3])           #顾头不顾尾 从第一个开始取到第三个不包括第三个
 #print(names[3])
 print(names[-2:])            #从左往右数
 # ['Xuliangchen', 'xiangpeng']
 print(names[0:3])
 #['Zhangyang', 'GuYun', 'Xuliangchen']
 print(names[:3])
 #['Zhangyang', 'GuYun', 'Xuliangchen']
 names.append("Leihaidong")
 print(names)
 #['Zhangyang', 'GuYun', 'Xuliangchen', 'xiangpeng', 'Leihaidong']
 names.insert(1,"chenronghua")
 print(names)
 #['Zhangyang', 'chenronghua', 'GuYun', 'Xuliangchen', 'xiangpeng', 'Leihaidong']
 #names.remove("chenronghua")
 #del names[1]
 #names.pop()  #如果不输入默认删除最后一个
 #names.pop(1) #和del names[1]效果一样
 print(names)
 print(names.index("GuYun"))
 print(names[names.index("GuYun")])

切片

  1 #print(names[1:3])           #顾头不顾尾 从第一个开始取到第三个不包括第三个
  2 #print(names[3])
  3 print(names[-2:])            #从左往右数
  4 ##['Xuliangchen', 'xiangpeng']
  5 print(names[0:3])
  6 ##['Zhangyang', 'GuYun', 'Xuliangchen']
  7 print(names[:3])
  8 ##['Zhangyang', 'GuYun', 'Xuliangchen']
  9 names.append("Leihaidong")
 10 print(names)
 11 ##['Zhangyang', 'GuYun', 'Xuliangchen', 'xiangpeng', 'Leihaidong']
 12 names.insert(1,"chenronghua")
 13 print(names)
 14 ##['Zhangyang', 'chenronghua', 'GuYun', 'Xuliangchen', 'xiangpeng', 'Leihaidong']
delete
1 ames.remove("chenronghua")
2 del names[1]
3 names.pop()  #如果不输入默认删除最后一个
4 names.pop(1) #和del names[1]效果一样

列表之改

1 print(names)
2 print(names.index("GuYun"))
3 print(names[names.index("GuYun")])

统计

1 print(names.count("chenronghua"))

清空

names.clear()
反转
names.reverse()

排序

names.sort

合并

names.extend()

删变量

del 变量名

copy

1 names=["Zhangyang","GuYun",["alex","jack"],"xiangpeng","Xuliangchen"]
2 name2=names.copy()
3 print(names)
4 print(name2)
5 names[3]="向鹏"
6 names[2][0]="ALEX"  #浅copy,只copy内存地址,同一块内存
7 print(names)
8 print(name2)

深copy
 1 # author:"Jason lincoln"
 2 import copy
 3 names=["Zhangyang","GuYun",["alex","jack"],"xiangpeng","Xuliangchen"]
 4 #name2=copy.copy(names)  #和浅copy一样
 5 name2=copy.deepcopy(names) #深copy
 6 print(names)
 7 print(name2)
 8 names[3]="向鹏"
 9 names[2][0]="ALEX"  #浅copy,只copy内存地址
10 print(names)
11 print(name2)

浅copy

 # author:"Jason lincoln"

 import copy

 person=['name',['a',100]]
 p1=copy.copy(person) #浅copy
 p2=person[:]         #浅copy
 p3=list(person)      #浅copy

 p1[0]='alex'
 p2[0]='fengjie'
 print(p1)
 print(p2)

元组

1 names=('jack','alex')2 names.index
3 names.count

购物车程序

需求:

1.启动程序后,让用户输入工资,然后打印商品列表

2.允许用户根据商品编号购买商品

3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

4.可随时退出,退出时,打印已购买商品和余额

 # author:"Jason lincoln"
 shopping_list=[]
 product_list=[
     ('iphone',5888),
     ('mac pro',12000),
     ('bike',800),
     ('alex python',120),
     ('coffee',31),
 ]

 salary=input('please input your salary:')
 if salary.isdigit():
     salary=int(salary)
     while True:
         for index,item in enumerate(product_list):
            # print(product_list.index(item),item)
            print(index,item)
         user_choice=input("选择要买啥?>>:")
         if user_choice.isdigit():
             user_choice=int(user_choice)
             if user_choice<len(product_list) and user_choice>=0:
                 p_item=product_list[user_choice]
                 if p_item[1]<=salary:         #买得起
                     shopping_list.append(p_item)
                     salary -=p_item[1]
                     print("Added %s into shopping cart,your current balsnce is \033[31;1m%s\033[0m"%(p_item,salary))
                 else:
                     print("\033[41;1m你的余额已剩[%s],还买个毛线啊\033[0m"%salary)
             else:
                 print("product code [%s] is not list"%user_choice)
         elif user_choice=='q':
             print("exit......")
         else:
             print("invild option")
 else:
     print("输入数字啊,傻嗨!")

字符串操作

 # author:"Jason lincoln"

 #name ='my \tname is alex'
 name="my \tname is {name} and i am {year} years old"
 print(name.capitalize()) #首字母大写
 print(name.count("a"))   #统计
 print(name.center(50,"-")) #打印50个字符,不够用“-”补齐,name放中间
 print(name.endswith("ex"))  #判断字符串以什么结尾
 print(name.expandtabs(tabsize=30)) #加空格,没什么卵用
 print (name[name.find("name"):]) #切片
 print(name.format(name='alex',year=23))
 print(name.format_map({'name':'alex','year':23}))
 print('abc123'.isalnum()) #是不是阿拉伯数字和字母
 print('Aassafsdf'.isalpha()) #是不是纯英文字母
 '.isdigit())  #是不是整数
 print('1f'.isdecimal()) #是不是十进制
 print('f-f'.isidentifier())#判断是不是一个合法的标识符
 '.isnumeric()) #是不是只有数字
 print('qqQ'.isupper()) #是不是全是大写
 ']))
 print(name.ljust(50,'*')) #放左边,不够用*补齐
 print(name.rjust(50,'*')) #放右边,不够用*补齐
 print('ALEX'.lower())  #变小写
 print('alex'.upper())  #变大写
 print('\nalex'.lstrip())#去左边的空格回车
 print('alex\n'.rstrip())#去右边的空格回车
 print('           alex\n'.strip())#去两边空格回车
 p=str.maketrans(")  #加密
 print("alex li".translate(p))             #加密
 print('alex li'.replace('l','L',1))
 print('alex li'.rfind('l')) #找到最右边的值的下标
 print('1+2+3+4'.split('+'))
 print('1+2\n3+4'.splitlines())
 print('Alex Li'.swapcase()) #大小写转换
 print('alex li'.title())
 print('alex li'.zfill(50)) #不够用0补上

字典

 # author:"Jason lincoln"

 info={
     'stu1101':"TengLan Wu",
     'stu102':"LongZe Luola",
     'stu1103':"Xiaoze Maliya",
 }
 print(info)
 print(info['stu1101'])

 info["stu1101"]="武藤兰"
 info["stu1104"]="Cangjingkong"
 print(info)
 #del
 #del info['stu1101']
 #print(info)
 print(info.get('stu1105')) #查
 print('stu1103' in info) #info has_key('stu1103') py2.x  判断

 b={
     'stu1101':'alex',
     1:3,
     2:5,
 }
 info.update(b)
 print(info)
 print(info.items()) #把字典转成列表
 c=dict.fromkeys([6,7,8],"test") #初始化列表
 print(c)
 c=dict.fromkeys([6,7,8],[1,{"name":"alex"},444])
 print(c)
 c[7][1]='jack chen'
 print(c)
 for i in info:        #字典转成列表  高效
     print(i,info[i])
 for k,v in info.items():
     print(k,v)

多层嵌套

 # author:"Jason lincoln"
 av_catalog={
     '欧美':{
         'www.youporn.com':['很多免费的,世界最大的','质量一般'],
         'www.pornhub.com':['很多免费的,也很大','质量比youporn高点'],
          'letmedothistoyou.com':['质量很高,真的很高','全部收费,屌丝请绕过 '],
     },"日韩":
     {'tokyo-hot':["质量不怎么样",'听说是收费的']

     },
     '大陆':{
         ':['全部免费,真好,好人一生平安','服务器在国外,慢']
     },
 }
 av_catalog['][1]="可以在国内做镜像"
 av_catalog.setdefault("大陆",{'www.baidu,com':['呵呵']}) #找到key就替换,找不到就创建
 print(av_catalog)

alex python of day2的更多相关文章

  1. python s12 day2

    python s12 day2   入门知识拾遗 http://www.cnblogs.com/wupeiqi/articles/4906230.html 基本数据类型 注:查看对象相关成员 var, ...

  2. (转)Python作业day2购物车

    Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...

  3. python学习day2

    一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...

  4. Python自学day-2

    一.模块     模块分两种:标准库和第三方库,标准库是不需要安装就可以使用的库.     import [模块名]:导入一个库,优先是在项目路径中寻找.自定义模块名不要和标准库模块名相同.   sy ...

  5. Python学习-day2

    这周时间充裕,把第一周的两个作业登陆验证和三级菜单做完后又用零零散散的时间看完了第二周的课程,不得不说老男孩这个教育方式感觉还是不错的,其实说白了就是花钱找个人监督自己学习呗,而且还强行让我们养成一些 ...

  6. Python基础-day2

    1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...

  7. alex python of day1

    Print("hello word!")#打印hello word!向python世界发生第一声呐喊,仪式很重要 定义变量 name="Alex Li" nam ...

  8. alex python of day3

    集合 # author:"Jason lincoln" list_1={1,4,5,7,3,6,7,9} list_1=set(list_1) #把集合变成列表 去重复 list_ ...

  9. python基础day2

    一.python字符串 字符串是 Python 中最常用的数据类型.可以使用引号('或")来创建字符串 1.1Python访问字符串中的值 Python不支持单字符类型,单字符在 Pytho ...

随机推荐

  1. 如何抽象一个 Vue 公共组件

    之前一直想写一篇关于抽象 Vue 组件的随笔,无奈一直没想到好的例子.恰巧最近为公司项目做了一个数字键盘的组件,于是就以这个为例聊聊如何抽象 Vue 的组件. 先上 Demo 与 源码.(demo最好 ...

  2. SAP 发送邮件 面向对象

    REPORT ZMMR0068_YYN. CONSTANTS: gc_tab TYPE c VALUE cl_bcs_convert=>gc_tab, "CL_ABAP_CHAR_UT ...

  3. vim 自动在操作符 前后加上空格 C语言

    function! Align_Space() let current_line = getline('.') let replacement = substitute(current_line,'\ ...

  4. python 字典详解

    1.字典的定义 字典类似于列表,但相对于列表来说字典更加通用,列表的下标必须必须为整数,而字典下标则可以为任意字符串/数字等,不可以是可变数据类型(列表,数组,元组) 字典包含下标(keys)集合和值 ...

  5. Java常用类(一)String类详解

    前言 在我们开发中经常会用到很多的常用的工具类,这里做一个总结.他们有很多的方法都是我们经常要用到的.所以我们一定要把它好好的掌握起来! 一.String简介 1.1.String(字符串常量)概述 ...

  6. SpringMVC + Spring + Mybatis+ Redis +shiro以及MyBatis学习

    SpringMVC + Spring + Mybatis+ Redis +shiro http://www.sojson.com/shiro MyBatis简介与配置MyBatis+Spring+My ...

  7. Chrome等浏览器下出现net::ERR_BLOCKED_BY_CLIENT的解决办法

    当我们在做开发时,调试页面图片会出现部分图片无法正常显示,并且确认图片的地址正确: 按F12 Debug查看报错原因,提示net::ERR_BLOCKED_BY_CLIENT错误,但当我们点击图片地址 ...

  8. 【ASP.NET MVC 学习笔记】- 02 Attribute

    本文参考:http://www.cnblogs.com/willick/p/3208427.html 1.特性(Attribute)对程序中的元素进行标注,比如类.字段.方法.属性等. 2.在.NET ...

  9. Python爬虫之爬取慕课网课程评分

    BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...

  10. 从json_encode过来的的字符串被返回到html页面时的解析

    在工作过程中经常需要向服务器请求数据.在需要返回多个值的时候,使用json_encode处理数组然后返回是很常用的做法.如果没有指定返回数据类型的情况下,默认返回的是json格式的字符串.那么需要将这 ...