向python3进发

在Python2.x中,交互输入有input和raw_input两种方法

  1. input-----------tmd是个坑,就别用
  2. raw_input------把输入无论是Int或str都当做是str处理,加入要取到数字,需要强制类型转化

在Python3.x中,只有input方法,但是效果跟Python2.x的raw_input一样一样的.

 1 #python2.x
 2 >>> s = int(raw_input(‘input:‘))
 3 input:a
 4 >>> type(s)
 5 <type ‘str‘>
 6
 7 >>> s = raw_input(‘input:‘)
 8 input:99
 9 >>> type(s)
10 <type ‘str‘>
12 >>> score = int(raw_input(‘input:‘))
13 input:99
14 >>> type(score)
15 <type ‘int‘>
16
17 #python3.x (python 3.x 一切皆类型....看type输出.....)
18 >>> s = int(input(‘input:‘))
19 input:a
20 >>> type(s)
21 <class ‘str‘>
22
23 >>> s = input(‘input:‘)
24 input:99
25 >>> type(s)
26 <class ‘str‘>
27
28 >>> score = int(input(‘input:‘))
29 input:99
30 >>> type(score)
31 <class ‘int‘>

一种不常见的格式化输出:

 1 >>> info=‘‘‘
 2 ... ---------info---------
 3 ... name:{_name}
 4 ... age:{_age}
 5 ... ‘‘‘.format(_name=‘zwj‘,_age=26)
 6 >>> print (info)
 7
 8 ---------info---------
 9 name:zwj
10 age:26

>>> print (‘name:{name},age:{age}‘.format(name=‘zwj‘,age=11))
name:zwj,age:11

一个可以密文输入的模块getpass

>>> import getpass
>>> username = input(‘username:‘)
username:zwj
>>> password = getpass.getpass(‘password:‘)
password:
>>> print (‘user:%s,pwd:%s‘%(username,password))
user:zwj,pwd:mima
>>> 

Python3的keys(), values(), items()返回的都是迭代器,如果需要像Python2一样返回列表,只要传给list就行了(Python2中iteritems()方法同样返回迭代器,Python3中已经移除)

>>> import sys
>>> sys.version
‘3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]‘
>>> d={‘k1‘:‘v1‘,‘k2‘:‘v2‘}
>>> print (d.keys(),d.values(),d.items())
dict_keys([‘k1‘, ‘k2‘]) dict_values([‘v1‘, ‘v2‘]) dict_items([(‘k1‘, ‘v1‘), (‘k2‘, ‘v2‘)])
>>> print (list(d.keys()),list(d.values()),list(d.items()))
[‘k1‘, ‘k2‘] [‘v1‘, ‘v2‘] [(‘k1‘, ‘v1‘), (‘k2‘, ‘v2‘)]
>>> 

除法运算

>>> a=3
>>> b=2
>>> a/b  #默认浮点
1.5
>>> a//b #取整
1
>>> a%b
1
>>> b%a
2
>>> b/a
0.6666666666666666
>>> c=5
>>> d=7
>>> c//7
0

一个可以密文输入的模块getpass

>>> import getpass
>>> username = input(‘username:‘)
username:zwj
>>> password = getpass.getpass(‘password:‘)
password:
>>> print (‘user:%s,pwd:%s‘%(username,password))
user:zwj,pwd:mima
>>> 

Python3的keys(), values(), items()返回的都是迭代器,如果需要像Python2一样返回列表,只要传给list就行了

>>> import sys
>>> sys.version
‘3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]‘
>>> d={‘k1‘:‘v1‘,‘k2‘:‘v2‘}
>>> print (d.keys(),d.values(),d.items())
dict_keys([‘k1‘, ‘k2‘]) dict_values([‘v1‘, ‘v2‘]) dict_items([(‘k1‘, ‘v1‘), (‘k2‘, ‘v2‘)])
>>> print (list(d.keys()),list(d.values()),list(d.items()))
[‘k1‘, ‘k2‘] [‘v1‘, ‘v2‘] [(‘k1‘, ‘v1‘), (‘k2‘, ‘v2‘)]
>>> 

除法运算

>>> a=3
>>> b=2
>>> a/b  #默认浮点
1.5
>>> a//b #取整
1
>>> a%b
1
>>> b%a
2
>>> b/a
0.6666666666666666
>>> c=5
>>> d=7
>>> c//7
0

位运算

>>> a=60    #60 = 0011 1100
>>> b=13    #13 = 0000 1101
>>> a&b      #12 = 0000 1100
12
>>> a|b        #61 = 0011 1101
61
>>> a^b        #49 = 00110001
49
>>> ~a        #-61 = 1100 0011
-61
>>> a<<2    #240 = 1111 0000
240
>>> a>>2    #15 = 0000 1111
15
>>> 

try/except/else/finaly

>>> print (1)
1
>>> try:
    print (1)
except:
    print (2)
else:
    print (3)
finally:
    print (4)

1
3
4

----------------
>>> try:
    print (x)
except:
    print (2)
else:
    print (3)
finally:
    print (4)

2
4

给字典排序

from heapq import nsmallest,nlargest

l = [
    {
        ‘name‘:‘good4‘,
        ‘increase‘: 69,
        ‘price‘: 20,
    },
    {
        ‘name‘:‘good1‘,
        ‘increase‘: 45,
        ‘price‘: 20,
    },
    {
        ‘name‘:‘good2‘,
        ‘increase‘: 59,
        ‘price‘: 24,
    },
    {
        ‘name‘:‘good3‘,
        ‘increase‘: 18,
        ‘price‘: 10,
    },
]

r = nsmallest(3,l,key=lambda s:(s[‘price‘],s[‘increase‘]))
print(r)
print(r[0])

r = nlargest(3,l,key=lambda s:(s[‘price‘],s[‘increase‘]))
print(r)
print(r[0])

out:
[{‘price‘: 10, ‘name‘: ‘good3‘, ‘increase‘: 18}, {‘price‘: 20, ‘name‘: ‘good1‘, ‘increase‘: 45}, {‘price‘: 20, ‘name‘: ‘good4‘, ‘increase‘: 69}]
{‘price‘: 10, ‘name‘: ‘good3‘, ‘increase‘: 18}
[{‘price‘: 24, ‘name‘: ‘good2‘, ‘increase‘: 59}, {‘price‘: 20, ‘name‘: ‘good4‘, ‘increase‘: 69}, {‘price‘: 20, ‘name‘: ‘good1‘, ‘increase‘: 45}]
{‘price‘: 24, ‘name‘: ‘good2‘, ‘increase‘: 59}
时间: 2024-11-05 15:53:44

向python3进发的相关文章

ubuntu下卸载python2和升级python3.5

卸载python只需一条语句就可以实现 sudu apt-get remove python ubuntu下安装python3 sudo apt-get install python3 但这样只安装了python3.4 要想使用python3.5,则必须升级python3.4 sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python3.5 使用以上三行命令便可升级py

python3 装饰器

看廖雪峰官网的python3装饰器有感 装饰器即将一个函数作为变量在新的函数中调用此函数. 作业: 能否写出一个@log的decorator,使它既支持: @logdef f():     pass 又支持: @log('execute')def f():     pass      例1: import functools import time def log(*args,**kwargs):     # *args 是个元组     if args and isinstance(args,

Python3 - MySQL适配器 PyMySQL

本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查. 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库. PyMySQL 安装 在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装. PyMySQL 下载地址:https

Python3 数字(Number)

1.Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. 2.Python 支持三种不同的数值类型: 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点.Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型. 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102

python2和python3中的编码问题

开始拾起python,准备使用python3, 造轮子的过程中遇到了编码的问题,又看了一下python3和python2相比变化的部分. 首先说个概念: unicode:在本文中表示用4byte表示的unicode编码,也是python内部使用的字符串编码方式. utf-8:在本文中指最少1byte表示的unicode编码方式 我在使用 if isinstance(key,unicode): key= key.encode('utf-8') 的时候,发现key值被转成了b'foo',b'bar'

CentOS 7.0 安装 python3.X 脚本

1 #!/bin/sh 2 3 #第一个Linux下的脚本,太多不明白的地方,只是依着网上的例子照葫芦画瓢,能正常运行即可 4 #运行环境 CentOS 7.0 版本 5 6 #首行指定程序的路径,以#号开头的行是注释行 7 8 #任意文本编辑器编辑此文档.默认是gedit 9 #保存在 Document 文件下,假设此文件名为test.sh 10 #右击属性使其可以执行,或者 右击菜单终端 chmod +x test.sh 11 #因为下面的命令创建文件夹需要的权限较高,先执行命令 su -

如何在CentOS6上安装Python2.7和Python3.3

原文来自http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/,个人觉得对在linux安装新版本Python是很有参考意义,因而转载,原文是英文的,本人简单翻译下,大家看懂即可,有不妥的地方请留言. 如何在CentOS 6上同时安装Python 2.7和Python 3.3 本文将介绍如何在CentOS 6上安装Python 2.7和3.3.下面以Python 2.7.6和Python 3.3.5为例进行说明,但本人实

python3 使用py2exe打包exe

py2exe在sourceforge 的下载只支持到2.7. 针对python3.0+的版本,需要自己编译. 1.下载源码 svn checkout svn://svn.code.sf.net/p/py2exe/svn/trunk py2exe-svn 2.编译环境 这里使用的是vs2014. 3.安装 进入py2exe-3 python setup.py install 这里会进行编译.安装. 此外,python默认使用的是vs9,针对vs2014,需要改下文件: Lib\distutils\

CentOS 5.5 x64下安装升级Python3.3

1.下载linux版本的Python3.3.5,以下是我共享的百度云盘的下载地址 http://pan.baidu.com/s/1kT3IHLH 2.解压: tar -zxvf Python-3.3.5.tgz 3.进入解压后的目录: cd Python-3.3.5 4.创建安装目录,这里我将其安装在/usr/local下 mkdir /usr/local/python3.3 5.编译python3.3 ./configure --prefix=/usr/local/python3.3 6.执行