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的值还保持不变的原因

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏林德熙的博客

C# 快速释放内存的大数组

本文告诉大家如何使用 Marshal 做出可以快速释放内存的大数组。 最近在做 3D ,需要不断申请一段大内存数组,然后就释放他,但是 C# 对于大内存不是立刻...

802
来自专栏Golang语言社区

Golang通用连接池

连接池在编程中并不少见,链接数据库,redis等操作都需要连接池,否则就会出现并发问题,如果每次操作都建立一条新的链接将会大大消耗资源,笔者也是在使用thrif...

1144
来自专栏编程之旅

iOS设计模式系列:单例设计模式

单例设计模式从字面意思上来说,就是一个类在系统运行时,只创建一个实例。可以用于需要被多次调用的或者多次使用的资源中。比如我们常见的网络请求类、工具类等等。

803
来自专栏挖坑填坑

Angular中关于时间的操作总结

nodejs上的时间和我本地的时间总是相差8个小时,这导致我每次发送时间到后台时,nodejs将时间转化成字符串传送出去的时候总是和我服务器上的时间相差8小时。...

844
来自专栏代码GG之家

封装之路(一) BaseApp

架构基于 Dagger2 + RxJava + Retrofit + Material Design + MVVM 目标:简化开发app难度,轻松容易的实...

1889
来自专栏哲学驱动设计

实战 ASP.NET Web API

Web API 框架是一个面向 Http 协议的通信框架。相对于 WCF 而言,Web API 只面向于 Http 协议设计,而且没有 WCF 那么繁琐的配置。...

2125
来自专栏nimomeng的自我进阶

《Objective C编程》笔记

1.为什么main()总是返回0?可以将main()的返回结果视为“粗欧文报告”,这样0就是好消息,没有错误就是成功。 2.消息:消息发送(指令)必须写在一对...

813
来自专栏BeJavaGod

Tips - SpringMVC 通过post接收form参数或者json参数

springmvc的controller很多都用来提供restful服务,成为多功能action 同一个接口既能够提供给web端,也可以提供给ios以及安卓 @...

3109
来自专栏CDA数据分析师

Python 异常处理完整指南

年前我写了一篇文章 Python classic, static, class and abstract methods,现在似乎到了更新的时候,今天我想来剖析...

23510
来自专栏博客园

Core官方DI解析(3)-ServiceCallSite

上一篇说过在整个DI框架中IServiceProviderEngine是核心,但是如果直接看IServiceProviderEngine派生类其实看不出也没什么...

512

扫码关注云+社区