python初识day1

  python初识day1

  本节内容:php

  • 格式化输入输出——Hello World.
  • 表达式if...else 条件语句.
  • 表达式for 循环.
  • 表达式while循环 and continue.
  •  break跳出循环.

1、格式化输入输出——Hello World. java

  1.输出python

print('Hello World')

print("Hello World")#双引号和单引号是同样用的 在某些状况下只能用双引号 例如:

print("let's go!") #句子中带有单引号时  外面就不能在用单引号扩起来

  2.用户输入程序员

name = input("what's your name?\n")
print(name)
2、表达式if...else条件语句
age = 20
guess = input('Please guess my age:')
if guess == age:  #必须加冒号  好几回错都是由于冒号
    print("You're great!")#若是知足条件 执行这条语句
else:
    print('you guessed wrong')  #反之执行这条语句
  python不一样于其余语言,python对Tab(四个空格)要求特别严格,像C/C++中一个条件的执行内容能够用{ }括起来,但python里没有这样的用法因此,if的执行内容必须要比if多一个Tab位。

3、for循环
  用循环输出0~9:面试

for i in range(10):
    print('loop:', i)

  输出结果:数据库

 loop: 0
 loop: 1
 loop: 2
 loop: 3
 loop: 4
 loop: 5
 loop: 6
 loop: 7
 loop: 8
 loop: 9

  仍是原来要求,不过不输出6:编程

num=6

for i in range(10):
    if i != num:  
      print('loop:',i)

  输出结果:windows

loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
loop 7
loop 8
loop 9

 4、表达式while循环 and continue数组

count = 0
while True:#这是一个死循环 若是不遇到break会一直执行下去
    count +=1
    print(count)

   continue做用:不进行本次循环内continue底下的部分,直接跳到循环初始位置继续循环。安全

count = 0
while count < 30:#whlie后跟的是条件 若是不遇到break且条件成立则会一直执行下去
    count +=1
    if 15 <= count <= 19:
        continue   #遇到continue不会输出值 由于输出语句在continue底下
    print(count)

 5、break跳出循环

  例:

count = 0
while True:#whlie后跟的是条件 若是不遇到break且条件成立则会一直执行下去
    count +=1
    if 15 <= count <= 19:
        continue   #遇到continue不会输出值 由于输出语句在continue底下
    if count == 50 :# 若是count == 50 改成 15~19之间的数呢?
        break
    print(count)

 面试题小总结:

1.为何学习Python

python是全能语言,社区庞大,有太多的库和框架。你只须要找到合适的工具来实现想法,省去了造轮子的精力。

coder能够写尽量少的代码来实现同等的功能。“人生苦短,我用python”是至理名言。

若是实现一个中等业务复杂度的项目,在相同的时间要求内,用java实现要4-5个码农的话,用python实现也许只须要1个。这就是python最大的优点了。

2.经过什么途径学习的Python?

  自学,看视频,看博客。

3.Python和Java、PHP、C、C#、C++等其余语言的对比?

 python语言,是一种面向对象、直译式计算机程序设计语言,Python语法简洁而清晰,具备丰富和强大的类库。它常被昵称为胶水语言,它可以很轻松的把用其余语言制做的各类模块(尤为是C/C++)轻松地联结在一块儿。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),而后对其中有特别要求的部分,用更合适的语言改写。
Python是彻底面向对象的语言。函数、模块、数字、字符串都是对象。而且彻底支持继承、重载、派生、多继承,有益于加强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。Python自己被设计为可扩充的。并不是全部的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员可以轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器自己也能够被集成到其它须要脚本语言的程序内。所以,不少人还把Python做为一种“胶水语言”(glue language)使用。使用Python将其余语言编写的程序进行集成和封装
C语言,它既有高级语言的特色,又具备汇编语言的特色,它是结构式语言。C语言应用指针:能够直接进行靠近硬件的操做,可是C的指针操做不作保护,也给它带来了不少不安全的因素。C++在这方面作了改进,在保留了指针操做的同时又加强了安全性,受到了一些用户的支持,可是,因为这些改进增长语言的复杂度,也为另外一部分所诟病。Java则吸收了C++的教训,取消了指针操做,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其自己解释在虚拟机中运行,运行效率低于C++/C。通常而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
      C语言的优势:简洁紧凑、灵活方便;运算符丰富;数据类型丰富;表达方式灵活实用;容许直接访问物理地址,对硬件进行操做;生成目标代码质量高,程序执行效率高;可移植性好;表达力强;
      C语言的缺点:C语言的缺点主要表如今数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不做检查等。从应用的角度,C语言比其余高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。


      C#语言,C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#看起来与Java有着惊人的类似;它包括了诸如单一继承、接口、与Java几乎一样的语法和编译成中间代码再运行的过程。可是C#与Java有着明显的不一样,它借鉴了Delphi的一个特色,与COM(组件对象模型)是直接集成的,并且它是微软公司 .NET windows网络框架的主角。首先,C# 和JAVA同样,简直就是照搬了C++的部分语法,所以,对于数量众多的C++程序员学习起来很容易上手,另外,对于新手来讲,比C++要简单一些。其次,Windows是占垄断地位的平台,而开发Windows应用,固然微软的声音是不能忽略的。最重要的是,相对于C++,用C# 开发应用软件能够大大缩短开发周期,同时能够利用原来除用户界面代码以外的C++代码。


      Java语言,Java是一种能够撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具备卓越的通用性、高效性、平台移植性和安全性,普遍应用于我的PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具有了显著优点和广阔前景。
Java的优点,与传统程序不一样,Sun 公司在推出 Java 之际就将其做为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并得到了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式彻底不一样。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
php语言,PHP(PHP: Hypertext Preprocessor的缩写,中文名:“PHP:超文本预处理器”)是一种通用开源脚本语言。语法吸取了C语言、Java和Perl的特色,入门门槛较低,易于学习,使用普遍,主要适用于Web开发领域。
     特性:PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法;PHP能够比CGI或者Perl更快速的执行动态网页——动态页面方面,与其余的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比彻底生成htmL标记的CGI要高许多,PHP具备很是强大的功能,全部的CGI的功能PHP都能实现; PHP支持几乎全部流行的数据库以及操做系统;最重要的是PHP能够用C、C++进行程序的扩展。
View Code

4.简述解释型和编译型编程语言?

解释型语言编写的程序不须要编译,在执行的时候,专门有一个解释器可以将VB语言翻译成机器语言,每一个语句都是执行的时候才翻译。这样解释型语言每执行一次就要翻译一次,效率比较低。


用编译型语言写的程序执行以前,须要一个专门的编译过程,经过编译系统,把源高级程序编译成为机器语言文件,翻译只作了一次,运行时不须要翻译,因此编译型语言的程序执行效率高,但也不能一律而论,

部分解释型语言的解释器经过在运行时动态优化代码,甚至可以使解释型语言的性能超过编译型语言。
View Code

ps:转自:https://blog.csdn.net/zhu_xun/article/details/16921413

5.Python解释器种类以及特色?

1、Cpython(最经常使用的版本)
       Python的官方版本,使用C语言实现,使用最为普遍,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),而后运行在Python虚拟机上。
2、Jyhton
       Python的Java实现,Jython会将Python代码动态编译成Java字节码,而后在JVM上运行。
3、IronPython
      Python的C#实现,IronPython将Python代码编译成C#字节码,而后在CLR上运行。(与Jython相似)
4、PyPy(特殊)
      Python实现的Python,将Python的字节码字节码再编译成机器码。
5、RubyPython、Brython ... 
View Code

 6.位和字节的关系?

1字节=8位
即:1B=8byte

7.b、B、KB、MB、GB 的关系

1GB=2^10MB
1MB=2^10KB
1KB=2^10B
1B=8b

8.请至少列举5个 PEP8 规范(越多越好)。

一 代码编排
1 缩进。4个空格的缩进(编辑器均可以完成此功能),不使用Tap,更不能混合使用Tap和空格。
2 每行最大长度79,换行可使用反斜杠,最好使用圆括号。换行点要在操做符的后边敲回车。
3 类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其余地方尽可能不要再空行。

二 文档编排
1 模块内容的顺序:模块说明和docstring—import—globals&constants—其余定义。其中import部分,又按标准、三方和本身编写顺序依次排放,之间空一行。
2 不要在一句import中多个库,好比import os, sys不推荐。
3 若是采用from XX import XX引用库,能够省略‘module.’,都是可能出现命名冲突,这时就要采用import XX。

三 空格的使用
        整体原则,避免没必要要的空格。
1 各类右括号前不要加空格。
2 逗号、冒号、分号前不要加空格。
3 函数的左括号前不要加空格。如Func(1)。
4 序列的左括号前不要加空格。如list[2]。
5 操做符左右各加一个空格,不要为了对齐增长空格。
6 函数默认参数使用的赋值符左右省略空格。
7 不要将多句语句写在同一行,尽管使用‘;’容许。
8 if/for/while语句中,即便执行语句只有一句,也必须另起一行。

四 注释
        整体原则,错误的注释不如没有注释。因此当一段代码发生变化时,第一件事就是要修改注释!
        注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。若是是短语,能够省略结束符。
1 块注释,在一段代码前增长的注释。在‘#’后加一空格。段落之间以只有‘#’的行间隔。好比:
# Description : Module config.
# 
# Input : None
#
# Output : None
2 行注释,在一句代码后加注释。好比:x = x + 1    # Increment x
可是这种方式尽可能少使用。
3 避免无谓的注释。

五 文档描述
1 为全部的共有模块、函数、类、方法写docstrings;非共有的没有必要,可是能够写注释(在def的下一行)。
2 若是docstring要换行,参考以下例子,详见PEP 257
"""Return a foobang

Optional plotz says to frobnicate the bizbaz first.

"""

六 命名规范
        整体原则,新编代码必须按下面命名风格进行,现有库的编码尽可能保持风格。
1 尽可能单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。
2 模块命名尽可能短小,使用所有小写的方式,可使用下划线。
3 包命名尽可能短小,使用所有小写的方式,不可使用下划线。
4 类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。
5 异常命名使用CapWords+Error后缀的方式。
6 全局变量尽可能只在模块内有效,相似C语言中的static。实现方法有两种,一是__all__机制;二是前缀一个下划线。
7 函数命名使用所有小写的方式,可使用下划线。
8 常量命名使用所有大写的方式,可使用下划线。
9 类的属性(方法和变量)命名使用所有小写的方式,可使用下划线。
9 类的属性有3种做用域public、non-public和subclass API,能够理解成C++中的public、private、protected,non-public属性前,前缀一条下划线。
11 类的属性若与关键字名字冲突,后缀一下划线,尽可能不要使用缩略等其余方式。
12 为避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。好比:类Foo中声明__a,访问时,只能经过Foo._Foo__a,避免歧义。若是子类也叫Foo,那就无能为力了。
13 类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。

七 编码建议
1 编码中考虑到其余python实现的效率等问题,好比运算符‘+’在CPython(Python)中效率很高,都是Jython中却很是低,因此应该采用.join()的方式。
2 尽量使用‘is’‘is not’取代‘==’,好比if x is not None 要优于if x。
3 使用基于类的异常,每一个模块或包都有本身的异常类,此异常类继承自Exception。
4 异常中不要使用裸露的except,except后跟具体的exceptions。
5 异常中try的代码尽量少。好比:
try:
value = collection[key]
except KeyError:
return key_not_found(key)
else:
return handle_value(value)
要优于
try:
# Too broad!
return handle_value(collection[key])
except KeyError:
# Will also catch KeyError raised by handle_value()
return key_not_found(key)
6 使用startswith() and endswith()代替切片进行序列前缀或后缀的检查。好比:
Yes: if foo.startswith('bar'):优于
No: if foo[:3] == 'bar':
7 使用isinstance()比较对象的类型。好比
Yes: if isinstance(obj, int): 优于
No: if type(obj) is type(1):
8 判断序列空或不空,有以下规则
Yes: if not seq:
if seq:
优于
No: if len(seq)
if not len(seq)
9 字符串不要以空格收尾。
10 二进制数据判断使用 if boolvalue的方式。
View Code

官网文档:https://www.python.org/dev/peps/pep-0008/

9.经过代码实现如下进制转换:

二进制转换成十进制:v = “0b1111011”

十进制转换成二进制:v = 18
 
八进制转换成十进制:v = “011”
 
十进制转换成八进制:v = 30
 
十六进制转换成十进制:v = “0x12”
 
十进制转换成十六进制:v = 87

def two_to_ten(n):
    x = int(n, 2)
    print(x)

two_to_ten("101100")
#输出:44
#bin()、oct()、hex()的返回值均为字符串,且分别带有0b、0o、0x前缀。

def two_to_eight(n):
    x = oct(int(n, 2))
    print(x)

two_to_eight("101100")
#输出:0o54

def sixteen_to_eight(n):
    x = oct(int(n, 16))
    print(x)

sixteen_to_eight("A7C9")
#输出:0o123711
View Code

 

10.请编写一个函数实现将IP地址转换成一个整数。

因为第9个给了进制间的转换的代码这里就只给下思路,有兴趣的小伙伴本身写一下吧!
首先须要将四个段分开转化成二进制,而后分别和"00000000"相或运算之后,就能够获得想要的二进制数了。而后拼接起来就ok了。
相关文章
相关标签/搜索