首页 > 编程语言 > 详细

python学习总结1

时间:2018-01-17 14:59:06      阅读:335      评论:0      收藏:0      [点我收藏+]

本文内容

1. 为什么要学python?

2. python是一种什么语言?

3. python安装过程

4. 第一个程序之helloworld

5. 变量

6. 用户输入

7. 格式化输出

8. 表达式 if else

9. 表达式while loop

10. 表达式for loop

11. break和continue

 

一、为什么要学python

随着人工智能的火爆发展,python也迎来了使用量的激增。最新的TIOBE排行榜如下图所示:

技术分享图片

 

python不仅用于人工智能,还应用于数据分析、网络编程、图像处理、数值计算。学习Python,是快速跻身互联网行业的一种途径。

二、 python是一种什么语言?

python是一种动态、强类型、解释性语言

动态和静态:

(1)动态:指程序运行期间进行数据类型检查的语言。定义变量的时候不需要进行数据类型定义,赋值即可。python、matlab都是动态语言。

(2)静态:程序在编译期间进行数据类型检查,写程序时必须定义好数据类型。c/c++、java、c#都是静态语言。

强类型和弱类型:

(1)强类型:强制数据类型定义的语言。一个变量被定义为一种数据类型,不经过强制类型转换,那么它就一直是这种数据类型。强类型语言是一种类型安全的语言。

(2)弱类型:数据类型可以被忽略,一个变量可以赋值不同数据类型的值。不是类型安全的语言。

强类型语言速度略逊于弱类型语言,但是安全性远远高于弱类型语言,更加严谨。

解释型和编译型:

编译是将源程序翻译成可执行的目标代码,翻译与执行是分开的;而解释是对源程序的翻译与执行一次性完成,不生成可存储的目标代码。这只是表象,二者背后的最大区别是:对解释执行而言,程序运行时的控制权在解释器而不在用户程序;对编译执行而言,运行时的控制权在用户程序。

(1)编译:程序先经过编译器,生成相应的可执行代码,然后再经过链接程序,生成可执行文件。

(2)解释:我的理解是一边进行编译,一边执行,由解释器进行这些操作。

编译型语言速度快,但是移植性差,需要环境配置。

解释型语言速度慢,但是可移植性强。

java很好的折衷了这两种特点,Java语言虽然比较接近解释型语言的特征,但在执行之前已经预先进行一次预编译,生成的代码是介于机器码和Java源代码之间的中介代码,运行的时候则由JVM(Java的虚拟机平台,可视为解释器)解释执行。它既保留了源代码的高抽象、可移植的特点,又已经完成了对源代码的大部分预编译工作,所以执行起来比“纯解释型”程序要快许多。“一次编译,到处执行”。

三、 python安装过程

四、第一个程序之helloworld

 

1 # -*- coding:utf-8 -*-
2 #py2中打中文的方法,需要声明上一句话
3 name = "你好,世界"
4 print(name)
5 print("Hello World!")#就这一句话就可以了!

 

上面是在pycharm中运行,如果想在交互界面运行,在dos下python目录下输入python,新一行出现>>>,表明进入交互界面,可以直接输入python命令。

技术分享图片

打印hello world:

技术分享图片

或者先编写好py文件再执行:

技术分享图片

技术分享图片

注意保存时后缀必须为py

技术分享图片

五、变量

变量名:gf_of_oldboy 、GFOfOldboy,命名时用下划线或者大写字母区分。一般大写就表示常量。

 

字符编码的发展历程:ASCII 255 1bytes---->gb2312 7000+ ----> GBK1.0 2w+ ----> GBK18030 27000+
unicode 2bytes ----> utf-8 English:1byte hanzi:3bytes

 

变量定义的规则:

 

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
1 name = "Feng"
2 name2 = name
3 print("My name is",name,name2)

不用定义数据类型,直接写就可以,真的方便。注意:Feng也可以用‘‘单引号。

注释:单行注释用#,多行注释用‘‘‘ xxx ‘‘‘ """ xxx"""

打印单行输出:逗号不打印,用于连接。字符串用双引号括起来,变量直接写。单引号里面的特殊字符不打印,双引号里面特殊字符(单引号)打印。

print("My name is",name,name2)

打印多行输出:变量=‘‘‘ xxx ‘‘‘,打印此变量。 

1 msg = ‘‘‘
2 print(name,name2)
3 ‘‘‘
4 print(msg)
5 
6 msg1 = "i‘m feng"
7 print(msg1)

打印结果:

print(name,name2)

i‘m feng

 

六、 用户输入

input命令。

1 name = input("name:")
2 age = int(input("age:"))
3 print(type(age),type(str(age)))
4 job = input("job:")
5 salary = input("salary:")

PS:输入的变量默认为str(字符串型),如果需要别的类型需要进行强制类型转换,如第二行。

输入用户名和密码,判断是否正确。

 1 _username = feng
 2 _password = abc123
 3 username = input("username:")
 4 password = input("password:")
 5 if _username == username and _password == password:
 6     print("Welcome user {name} login...".format(name=username))
 7 else:
 8     print("Error!")
 9 
10 print(username,password)

附加密码不可见的功能。加入注释内容即可。

 1 import getpass
 2 _username = feng
 3 _password = abc123
 4 username = input("username:")
 5 password = input("password:")
 6 #password = getpass.getpass("password:")
 7 #密码不是明文   但是不能在这运行 在dos可以运行
 8 if _username == username and _password == password:
 9     print("Welcome user {name} login...".format(name=username))
10 else:
11     print("Error!")
12 
13 print(username,password)

 

七、 格式化输出

有四种格式化输出的方法:

第一种是‘‘‘+xxx+‘‘‘

第二种是%s %d %f  后面%(XXX,XXX,XXX)     XXX是变量

第三种是{形参}  后面 .forma(形参1=xxx,形参2=xxx,形参3=xxx) 

第四种是{数字}  后面.FORMAT(XXX,XX,XXX)

例子:

 1 #强制类型转换( 默认输入就是字符串 ) 打印变量%s %d %f
 2 #格式化输出    1、‘‘‘+ name +‘‘‘ 不用这个 开辟多块内存   2、%s替代符 %(xx,xx,xxxx)  3、 .format
 3 name = input("name:")
 4 age = int(input("age:"))
 5 print(type(age),type(str(age)))
 6 job = input("job:")
 7 salary = input("salary:")
 8 #第一种格式化输出的方法
 9 info = ‘‘‘
10 ----------- info of ‘‘‘+name + ‘‘‘ -------
11 Name:‘‘‘+name + ‘‘‘
12 Age:‘‘‘+age + ‘‘‘
13 Jod:‘‘‘+job + ‘‘‘
14 Salary:‘‘‘+salary + ‘‘‘
15 
16 ‘‘‘
17 #第二种格式化输出的方法
18 info = ‘‘‘
19 ----------- info of %s -------
20 Name:%s
21 Age:%d
22 Jod:%s
23 Salary:%s
24 ‘‘‘%(name,name,age,job,salary)
25 
26 #第三种格式化输出的方法  建议这种!
27 info2 = ‘‘‘
28 ----------- info of {_name} -------
29 Name:{_name}
30 Age:{_age}
31 Jod:{_job}
32 Salary:{_salary}
33 ‘‘‘.format(_name=name,
34            _age=age,
35            _job=job,
36            _salary=salary)
37 #第四种格式化输出的方法
38 info3 = ‘‘‘
39 ----------- info of {0} -------
40 Name:{0}
41 Age:{1}
42 Jod:{2}
43 Salary:{3}
44 ‘‘‘.format(name,name,age,job,salary)
45 print(info2)

八、 表达式 if else

1、用户登录验证

设置好用户和密码,用户输入用户名和密码。对,欢迎;错,错误。

 1 import getpass
 2 _username = feng
 3 _password = abc123
 4 username = input("username:")
 5 password = input("password:")
 6 #password = getpass.getpass("password:")
 7 #密码不是明文   但是不能在这运行 在dos可以运行
 8 if _username == username and _password == password:
 9     print("Welcome user {name} login...".format(name=username))
10 else:
11     print("Error!")
12 
13 print(username,password)

注意:if 条件输入完以后要加:,else、while、for同样。

2、猜年龄游戏

设定一个年龄,用户输入猜测的年龄。猜对了,对;猜大了,告诉用户猜大了;猜小了,告诉用户猜小了。

1 age_of_oldboy = 56
2 guess_age = int(input("guess age:"))
3     if guess_age == age_of_oldboy:
4         print("yes,you get it.")
5     elif guess_age > age_of_oldboy:
6         print("think smaller!")
7     else:
8         print("think bigger!")

注意,输入数字,要进行强制类型转换,将输入的字符串转换成数字。(看似输入的是数字,其实在py中是字符串)

九、表达式while loop

将猜年龄游戏加入循环,只能猜三次,猜对了用break退出程序;三次都猜错了也退出程序。

 1 age_of_oldboy = 56
 2 count = 0
 3 while count<3:
 4     guess_age = int(input("guess age:"))
 5     if guess_age == age_of_oldboy:
 6         print("yes,you get it.")
 7         break
 8     elif guess_age > age_of_oldboy:
 9         print("think smaller!")
10     else:
11         print("think bigger!")
12     count+=1
13 else: # not  if count ==3:
14     print("You have tried too many times..fuck off")
15     #while 1st
16     #count = 0
17     # while count
18           # if count==3:
19            #    break

注释中是实现程序的另外的方法,比较笨,现在的代码是优化后的,用一个大的else就可以,所以说while也可以与else结合?

再改进下这个猜年龄游戏,改成猜对了就跳出;猜错了询问用户是否继续,继续随便输入一个字符即可,不继续输入n,终止程序。

 1 age_of_hu=56
 2 
 3 count=0
 4 while count<3:
 5     guess_age = int(input("guess_age:"))
 6     if age_of_hu==guess_age:
 7         print("yes")
 8         break
 9     elif age_of_hu>guess_age:
10         print("think smaller")
11     else :
12         print("thinnk bigger")
13     count+=1
14     if count==3:
15         guess_confirm=input("Do you want to keeping guessing?:")
16         if guess_confirm!=n:
17             count=0

 

死循环:能一直运行的循环

1 count=0
2 while True:
3     print("yes",count)
4     count+=1

循环一百次:

1 count=0
2 while True:
3     print("count:",count)
4     count=count+1  #count +=1
5     if count == 1000:
6         break

十、表达式for loop

1 for i in range(10):
2     print("loop:", i )

输出:

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

还是猜年龄的例子,用for循环实现。猜三次,对,跳出;三次都错,退出程序。

 1 age_of_oldboy = 56
 2 for i in range(3):
 3     guess_age = int(input("guess age:"))
 4     if guess_age == age_of_oldboy:
 5         print("yes,you get it.")
 6         break
 7     elif guess_age > age_of_oldboy:
 8         print("think smaller!")
 9     else:
10         print("think bigger!")
11 else:#上面代码正常执行完才执行下面
12     print("You have tried too many times..fuck off")

 

十一、break和continue

break和continue:

continue :跳出本次循环,进行下次循环。
break :结束本次循环, 如果是嵌套,跳出第一层循环。

例1:

1 count=0
2 while True:
3     print("count:",count)
4     count=count+1  #count +=1
5     if count == 1000:
6         break

 例2:

1 for i in range(0,10):
2     if i<5:
3         print("loop",i)
4     else:
5         continue
6     print("hehe...")

输出:

loop 0
hehe...
loop 1
hehe...
loop 2
hehe...
loop 3
hehe...
loop 4
hehe...

 用continue:设置断点进行调试的时候,发现i=6以后还会进行i=7一直到i=9,但是不打印后面的hehe。

用break:设置断点进行调试的时候,发现i=6以后程序直接终止。

例3:

1 for i in range(10):
2 
3     print(------------,i)
4     for j in range(10):
5         print(j)
6         if j>5:
7             break  #跳出j循环 不跳出i循环

输出:

------------ 0
0
1
2
3
4
5
6
------------ 1
0
1
2
3
4
5
6
------------ 2
0
1
2
3
4
5
6
------------ 3
0
1
2
3
4
5
6
------------ 4
0
1
2
3
4
5
6
------------ 5
0
1
2
3
4
5
6
------------ 6
0
1
2
3
4
5
6
------------ 7
0
1
2
3
4
5
6
------------ 8
0
1
2
3
4
5
6
------------ 9
0
1
2
3
4
5
6

 

python学习总结1

原文:https://www.cnblogs.com/winderFF/p/8301716.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!