python学习笔记(一)-基础知识

O、解释型语言和编译型语言
  编译型语言就是先把写好的程序翻译成计算机语言然后执行,就是所谓的一次编译到处运行,比如c、c++就是编译型语言,这样的语言特点是运行速度快,但是需要事先把程序编译好才可以。
  解释型语言就是程序在运行的时候,通过一个解释器,把代码一句一句的翻译成计算机语言然后运行,也就是你写好代码之后直接就能运行,比如说python、shell、ruby、java、perl等等都是解释型语言,当然这样的语言由于原理不一样,执行速度并没有编译型语言快。

  脚本语言就是指这个语言只有一个单一的功能。比如:shell、js。

一、运行 hello_world.py 时发生的情况
  print("Hello world!")
  运行文件上述代码时,末尾的.py指出这是一个Python程序,因此编辑器将使用Python解释器来运行它。 Python解释器读取整个程序,确定其中每个单词的含义。例如,看到单词print时,解释器就会将括号中的内容打印到屏幕,而不会管括号中的内容是什么。
  注意:1、python2中不同,print "hello world!" ;

     2、python2中要在开头部分加入:#coding=utf-8。

     3、python3默认的字符集是Unicode,#python2里面默认的字符集是 ascii。

二、变量

  message = "Hello world!"
  print(message)
  上述代码中,添加了一个名为message的变量。每个变量都存储了一个值——与变量相关联的信息。在这里,存储的值为文本“ Hello world!”。
  添加变量导致Python解释器需要做更多工作。处理第1行代码时,它将文本“ Hello  world!”与变量message关联起来;而处理第2行代码时,它将与变量message关联的值打印到屏幕。
  

  变量的命名规则:
  1、变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。

  2、变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
  3、不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词。如下图:

  

  好的建议:

  1、变量名应既简短又具有描述性。例如, name比n好, student_name比s_n好, name_length比length_of_persons_name好。
  2、慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

 三、单引号、双引号和三重引号

   在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号。甚至是三重引号来表示。
  单引号:msg = "I'm Sriba."   #有单引号,所以外面用双引号

  双引号:'Python comments ues "#".'   #有双引号,所以外面用单引号

  三引号:'''I'm Sriba, i love "Python".'''  #有双引号和双引号,所以外面用三引号

  '''
  上面的代码是说明单引号、双引号和三引号的
  这一段是注释,说明三引号也有多行注释的功能
  '''

四、输入input()函数

  函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后, Python将其存储在一个变量中,以方便你使用。  

message = input("Tell me something, and I will repeat it back to you: ")
print(message)

  函数input()接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做。在这个示例中, Python运行第1行代码时,用户将看到提示Tell me something, and I will repeat it backto you:。程序等待用户输入,并在用户按回车键后继续运行。输入存储在变量message中,接下来的print(message)将输入呈现给用户。

  注意:python2中使用raw_input,接收的是一个字符串。


五、if语句

  每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。 Python根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False, Python就忽略这些代码。
  简单的 if 语句
  if conditional_test:
    do something
  在第1行中,可包含任何条件测试,而在紧跟在测试后面的缩进代码块中,可执行任何操作。如果条件测试的结果为True, Python就会执行紧跟在if语句后面的代码;否则Python将忽略这些代码。
  if-else 语句
  经常需要在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用Python提供的if-else语句。 if-else语句块类似于简单的if语句,但其中的else语句让你能够指定条件测试未通过时要执行的操作。

  sex = input('请输入你的性别:')

  if sex=='' or sex=='':
    print('ok的')
  else:
    print('人妖')

  if-elif-else 结构

  经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else结构。 Python只执行if-elif-else结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后, Python将执行紧跟在它后面的代码,并跳过余下的测试。  

score = input('请输入你的分数:')
score = int(score)
if score<60:
    print('不及格')
    if score>50:
        print('hahah')
    elif score<50:
        print('小傻瓜')
    else:
        print('-------')
elif score>=60 and score<80:
    print('及格')
elif score>=80 and score<90:
    print('良好')
else:
    print('优秀')

六、循环

  循环就是重复替你去干。循环需要指定一个循环结束条件,python提供两个关键字可以直接推出循环。

  continue: 结束本次循环,继续进行下一次循环
  break: 结束整个循环

  pyhon中又两种循环,while循环和for循环。

  while 循环
  while循环不断地运行,直到指定的条件不满足为止。用while循环的,那么必须得有计数器。

count = 0 #计数器
while count<3:
    username = input('plz enter your userame:')
    pwd = input('plz enter your pwd:')
    if username=='nhy' and pwd=='123456':
        print('欢迎光临')
        continue
    else:
        print('账号/密码错误!')
    count+=1
else:
    print('错误次数过多')

  for循环

  for循环能够帮助我们做很多重复性的事情,比如批量命名、批量操作等。可以把for循环所做的事情概括成一句话就是:于...其中的每个元素,做...事情

import random
random_num = random.randint(1,1000)
for i in range(3):
    num = int(input('请输入你猜的数字:'))
    if num>random_num:
        print('你猜的太大了')
    elif num<random_num:
        print('太小了')
    else:
        print('恭喜你猜对了,答案是:',random_num)
        break

循环应用猜数字游戏:

import random
random_num = random.randint(1,1000)
# print(random_num)
while True:
    num = int(input('请输入你猜的数字:'))
    if num>random_num:
        print('你猜的太大了')
    elif num<random_num:
        print('太小了')
    else:
        print('恭喜你猜对了,答案是:',random_num)
        break

七、字符串格式化

  什么是格式化输出呢,就是说把你的输出都格式化成一个样子的,比如说登录的欢迎信息,都是welcome to login,Marry. 每个用户登录都是这样欢迎,但是每个用户的用户名都是一样的,你不能一个用户就写一行代码吧,这就需要用到格式化输出了,有三种方式,第一种是用“+”连接,直接把输出的字符串和变量连接起来就可以了;第二种是用占位符,占位符有常用的有三种,%s、%d和%f,%s是后面的值是一个字符串,%d是后面的值必须是一个整数,%f后面是小数;第三种是使用{}和fromat方法,这三种呢,官方推荐是使用format方法,不推荐使用第一种,第一种用加号的,会在内存里面开辟多个内存空间,而后面两种是只开辟一块内存空间,使用方式如下:

    name = input('请输入你的名字:')
    print('你的名字是'+name) #使用加号连接
    print('你的名字是%s'%name)#使用占位符  
    print('你的名字是{your_name}'.format(your_name=name)) #使用format格式化输出,{}里面的名字可以随便写但是要和后面的format中的名字保持一致,然后再把你前面定义的变量写到等号后面就可以了。
    age = 18
    print('我的名字是%s,年龄是%d岁.'%(name,age))#这种是里面有多个格式化内容的,前面那个是字符串,后面这个是整数,多个变量的后面跟值的时候必须要加上括号
原文地址:https://www.cnblogs.com/lincy/p/8071771.html