python成长之路-----day1----笔记(1)
1、python语言介绍
python的创始人:Guido Van Rossum
2、python是一门什么样的语言
编程语言主要从以下几个角度进行分类:编译型,静态型,动态性,强类型定义语言和弱类型定义语言
1) 编译型:有一个负责翻译的程序来对我们的源代码进行转换,生成对应的可执行代码,这个过程就是编译(Compile),而负责编译的程序就被称为编译器(Compiler)
2) 通常我们所说的动态语言,静态语言是指动态类型语言和静态类型语言
(1)动态类型语言:是指在运行期间采取做数据类型检查的语言。即在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。典型的是python和Ruby
(2)静态类型语言:数据类型是在编译期间检查的,也就是说在写程序的时候要声明所有变量的数据类型。C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#,JAVA
3、Python能做什么?
网络应用、科学运算、GUI程序、系统管理工具、其他等等
python的优缺点:
优点:简单、开发效率高、高级语言、可移植性、可扩展性、可嵌入性
缺点:速度慢,但是相对的、代码不能加密、线程不能利用多CPU问题
4、python解释器:Cpython、IPython、PyPy、Jython、IronPython
----------------以上是一些基础的python知识---------------
1、如果用的ubantu系统的linux,默认存在的是两个python版本:2.7和3.5,默认执行python,启动的是2.7版本
如果想要启动3.5版本,需要做如下操作
ln -s /usr/bin/python3.5 /usr/bin/python(需要在root下用户执行或者sudo)
查看自己的python的版本:
Python -V
2、开始python的第一个程序:
代码内容如下:
代码中开头的:#!/usr/bin/env python与编写shell程序时#!/bin/bash意思是一样的声明要使用的解释器类型!
运行结果如下:
3、第二个小程序关于猜年龄:
代码内容如下:
在linux中写的一个版本:
运行结果如下:
对上面猜你年龄程序的一些分析如下:
对于input在2.7里面的是raw_input()
在3.5里面同样的print需要print()
对于if和else后面的冒号为规定格式
代码里的int就是为了将输入的字符串转换为int类型,默认输入的内容都是字符串string类型
版本1:(用了if…elif…else)
1 age_of_dean = 23 2 guess_age = int(input("input you guess:")) 3 if guess_age == age_of_dean: 4 print("you got it") 5 elif guess_age > age_of_dean: 6 print("think smaller.....") 7 else: 8 print("think bigger.......")
版本2:(用了while循环)
1 age_of_dean = 23 2 3 count = 0 4 5 while count<3: 6 7 guess_age = int(input("input you guess:")) 8 9 if guess_age == age_of_dean: 10 11 print("you got it") 12 13 break 14 elif guess_age > age_of_dean: 15 16 print("think smaller.....") 17 18 else: 19 20 print("think bigger.......") 21 22 count +=1 23 24 else: 25 26 print("you guess is too manys,fuck off")
版本3:(任意玩版本)
age_of_dean = 23 count = 0 while count<3: guess_age = int(input("input you guess:")) if guess_age == age_of_dean: print("you got it") break elif guess_age > age_of_dean: print("think smaller.....") else: print("think bigger.......") count +=1 if count == 3: input_continue = input("Do you want to continue to guess:") if input_continue != "n": count = 0
版本4:(for循环)
age_of_dean = 23 for i in range(3): guess_age = int(input("input you guess:")) if guess_age == age_of_dean: print("you got it") break elif guess_age > age_of_dean: print("think smaller.....") else: print("think bigger.......") else: print("you guess is too manys,fuck off")
4、关于格式化输出的三种方法:
方法1: Name = input("Name:") Age = input("Age:") Job = input("Job:") Salary = input("Salary:") info1 = '''--------info of %s------- Name:%s Age:%s Job:%s Salary:%s ''' %(Name,Name,Age,Job,Salary) print(info1) 方法2: Name = input("Name:") Age = input("Age:") Job = input("Job:") Salary = input("Salary:") info2 = '''--------info of {0}------- Name:{0} Age:{1} Job:{2} Salary:{3} ''' .format(Name,Name,Age,Job,Salary) 方法3: info3 = '''--------info of {_name}------- Name:{_name} Age:{_age} Job:{_job} Salary:{_salary} ''' .format(_name=Name,_age=Age,_job=Job,_salary=Salary) print(info2)
5、变量的明名规则:
python变量的命名只能由数字、字母和下划线3种字符组成,且第一个字符串必须为字符或者下划线。
例如:name,Sutdent,Li_li
不符合的规则如下:M.C,$23,#11,zhao Fan,C++这些都是错误的命名
6、关于赋值后在内存中的关系
例子代码如下:
name = "Dean"
name2 = name
print("My name is ",name,name2)
name = "zhaofan"
print("My name is ",name,name2)
运行结果如下:
从上面可以看出,当你把一个变量name赋值给另一个变量name2时,解释器只是把name变量指向的内存地址赋值给了name2,因此name和name2并未发生直接的关联,只不过是他们都同时指向了同一个内存地址而已,这也是为什么你把name再指向一个新的地址后,而name2的值还保持不变的原因