Python Day1 Learning record(python第一天学习记录)
一、ptyhon安装
windows
1 1、下载安装包 2 https://www.python.org/downloads/ 3 2、安装 4 默认安装路径:C:\python27 5 3、配置环境变量 6 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 7 如:原来的值;C:\python27,切记前面有分号
linux、Mac
1 无需安装,原装Python环境 2 3 ps:如果自带2.6,请更新至2.7
二、Hello World程序
在linux下创建一个文件叫hello.py,并输入
1 print("Hello World!")
指定解释器
上一步中执行python hello.py时,明确的指出hello.py脚本由python解释器来执行,
如果想要类似执行shell脚本一样执行python脚本,那么久需要在hello.py文件头部指定解释器,如下:
1 #!/usr/bin/env python 2 3 print("Hello World!")
三、变量\字符编码
变量用于存储在计算机程序中引用和操作的信息。它们还提供了一种用描述性名称对数据进行标记的方法,这样我们的程序就可以更清楚地被读者和我们自己理解。把变量看作容纳信息的容器是有帮助的。他们唯一的目的是在内存中标记和存储数据。然后可以在整个程序中使用这些数据。
声明变量
1 #_*_coding:utf-8_*_ 2 3 name = "abu Zhang"
上述代码声明了一个变量,变量名为: name,变量name的值为:"abu Zhang"
变量定义的规则:
- 变量名只能是字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
【and, as, assert, class, continue, dep, dell, elip, else, except, exec, fnally, for, from, global, ip, import, in, is, lambda, not, or ,pass, print, raise, return, try, while, yield】
变量的赋值
1 name = "abu Zhang" 2 3 name2 = name 4 print(name,name2) 5 6 name="jack" 7 8 print("what is the value of name2 now?")
四、字符编码
python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill码)
ASCII(American standard code for information interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示一个字节,即:2**8 = 256-1,所以,ASCII码最多只能表示255个符号。
关于中文
为了处理汉子,程序员设计了用于简体中文的GB2312和用于繁体中文的big5.
GB2312(1980年)一个收录了7445个字符,包括6763个汉子和682个其它符号。汉子区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768,。其中有5个空位是D7FA-D7FE。
五、用户输入
1 #Author:abu zhang 2 #_*_coding:utf-8_*_ 3 name = input("what is your name?") 4 print("Hello ", name)
输入密码时,如果想要不可见,需要利用getpass模块中的getpass方法,即:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import getpass 5 6 # 将用户输入的内容赋值给 name 变量 7 pwd = getpass.getpass("请输入密码:") 8 9 # 打印输入的内容 10 print(pwd)
六、模块初识
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有想要的python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。
sys
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import sys 5 6 print(sys.argv) 7 8 9 #输出 10 $ python test.py helo world 11 ['test.py', 'helo', 'world'] #把执行脚本时传递的参数获取到了
os
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import os 5 6 os.system("df -h") #调用系统命令
七、数据类型初识
1、数字
2是一个整数的例子
长整数不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标志表示10的幂。在这里,52.3E-4表示52.3*10-4。
(-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4位实数,j为虚数,数学中表示复数是什么?
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位机器上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
3、字符串
“hello world”
万恶的字符串拼接:
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开闭空间,万恶的+号每出现一次就会在内存中重新开辟一块空间。
字符串格式化输出
1 name = "abu" 2 print("i am %s ",name) 3 4 #输出:i am abu
PS:字符串是%s;整数%d;浮点数%f
字符串常用功能:
- 移除空白
- 分割
- 长度
- 索引
- 切片
4、列表
创建列表:
1 name_list = ['alex','abu','jack'] 2 或 3 name_list = list(['alex','abu','jack'])
基本操作:
- 索引
- 切片
- 追加
- 删除
- 长度
- 循环
- 包含
5、元组(相当于不可改变的列表)
创建元组:
1 ages = (11,22,33,44,55) 2 或 3 ages = tuple((11,22,33,44,55))
6、字典(无序)
创建字典:
1 person = {"name":"abu.zhang","age":"19"} 2 或 3 person = dict({"name":"abu.zhang","age":"19"})
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
八、数据运算
数学运算:
比较运算:
赋值运算:
逻辑运算:
成员运算:
身份运算:
位运算:
运算符优先级:
更多内容:猛击这里
九、表达式if ... else
场景一、用户登录认证
1 #提示输入用户名和密码 2 #验证输入用户名和密码 3 #如果认证错误,则输出用户名或密码错误 4 #如果成果,则输出,欢迎,XXX登陆 5 6 _username = "abu" 7 _passwd = "dev.dev." 8 9 username = input('请输入用户名:') 10 passwd = input('请输入密码:') 11 if _username == username and _passwd == passwd: 12 print("欢迎%s登陆"%(username)) 13 else: 14 print("你输入的用户名或密码错误,请重新输入。")
场景二、猜年龄游戏
在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了
1 count = 0 2 abu_age = 23 3 while True: 4 count += 1 5 abu_age_input = int(input("请输入你猜的岁数:")) 6 if abu_age == abu_age_input: 7 print("恭喜你猜对了。") 8 elif abu_age < abu_age_input: 9 print("你猜错了,往小了猜试下。") 10 else: 11 print("你猜错了,往大了猜试下。")
十、表达式for循环
最简单的循环10次
1 for i in range(10): 2 print("loop:",i) 3 4 loop: 0 5 loop: 1 6 loop: 2 7 loop: 3 8 loop: 4 9 loop: 5 10 loop: 6 11 loop: 7 12 loop: 8 13 loop: 9
需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
1 for i in range(10): 2 if i<5: 3 continue #不往下走了,直接进入下一次loop 4 print("loop:",i)
这里只要使用的是countinue 跳过本次循环,继续下一次循环
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
1 for i in range(10): 2 if i>5: 3 break #不往下走了,直接跳出整个循环 4 print("loop:",i)
这里只要使用的是break ,i小于5的时候就走,i大于5的时候就退出循环了
十一、while loop
有一种循环叫死循环,一经触发,就运行个天荒地老、海枯石烂。
1 count = 0 2 while True: 3 print('你是风儿我是沙,缠缠绵绵到天涯...',count) 4 count +=1
其实除了时间,没有什么是永恒的,死loop还是少写好
上面的代码循环100次就退出好吧
1 count = 0 2 while True: 3 print('你是风儿我是沙,缠缠绵绵到天涯...',count) 4 count +=1 5 if count == 100: 6 print('去你妈的风和沙,你们这些脱了裤子是人,穿上裤子是鬼的臭男人。。') 7 break
回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 5 my_age = 28 6 7 count = 0 8 while count < 3: 9 user_input = int(input("input your guess num:")) 10 11 if user_input == my_age: 12 print("Congratulations, you got it !") 13 break 14 elif user_input < my_age: 15 print("Oops,think bigger!") 16 else: 17 print("think smaller!") 18 count += 1 #每次loop 计数器+1 19 else: 20 print("猜这么多次都不对,你个笨蛋.")