python学习日记——day 1
出于兴趣爱好,开始自学python,所以很多都是在其他的大佬那里copy截取来的,东拼西凑的知识点,我根据自己的学习情况做的一个笔记。之前我看过金角大王写的python之路,还是挺通俗易懂的。
一、python是一门解释型语言?
计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个“翻译机”来从事把高级语言转变成计算机能读懂的机器语言的过程。这个过程分成两类,第一种是编译,第二种是解释。
编译型语言在程序执行之前,先会通过编译器对程序执行一个编译的过程,把程序转变成机器语言。运行时就不需要翻译,而直接执行就可以了。最典型的例子就是C语言。
解释型语言就没有这个编译的过程,而是在程序运行的时候,通过解释器对程序逐行作出解释,然后直接运行,最典型的例子是Ruby。
通过以上的例子,我们可以来总结一下解释型语言和编译型语言的优缺点,因为编译型语言在程序运行之前就已经对程序做出了“翻译”,所以在运行时就少掉了“翻译”的过程,所以效率比较高。但是我们也不能一概而论,一些解释型语言也可以通过解释器的优化来在对程序做出翻译时对整个程序做出优化,从而在效率上超过编译型语言。
此外,随着Java等基于虚拟机的语言的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。
用Java来举例,Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。
那么python到底是什么呢
其实Python和Java/C#一样,也是一门基于虚拟机的语言,我们先来从表面上简单地了解一下Python程序的运行过程吧。
当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。
熟悉Java的同学可以想一下我们在命令行中如何执行一个Java的程序:
javac hello.java
java hello
其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。
二、数据类型
1、数字
int(整型)
在32位机器上,整数的位数为32位,(4个G,)取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
2、布尔值
真或假
1 或 0
3、字符串
“hello world!”
字符串格式化输出
例1:
name=input("name:")
age=input("age:")
job=input("job:")
salary=input("salary:")
info="""
-------info of %s-----
Name:%s
Age:%s
Job:%s
Salary:%s
""" % (name,name,age,job,salary)
print(info)
PS:
%s: string 字母,数字
%d: 只能接受数字,(一般这种情况 用于检测只能接受数字的情况。)
%F: 浮点数
可以通过print (type(~)) 打印数据类型
例2:
name=input(“name:”)
age=input(“age:”)
job=input(“job:”)
salary=input(“salary:”)
”””---------info of {name}--------
Name:{name}
Age:{age}
Job:{job}
Salary:{salary}” “”.format{name=
age=
job=
salary= }
4、列表
创建列表:
name_list = ['alex', 'seven', 'eric']
或者
name_list = list(['alex', 'seven', 'eric'])
5、元组(不可变列表)
创建元组:
ages = (11, 22, 33, 44, 55)
或
ages = tuple((11, 22, 33, 44, 55))
6、字典(无序)
创建字典:
person = {"name": "mr.wu", 'age': 18}
或
person = dict({"name": "mr.wu", 'age': 18})
三、判断
1、if ...else、if ...elif...else
guess_age = int(input("plese guess age:"))
if age ==guess_age:
print ("you got it!")
break
elif age <guess_age:
print ("think smaller!")
else :
print("think bigger!")
2、while...else
while count <3:
guess_age = int(input("plese guess age:"))
if age==guess_age:
print ("you got it!")
break
elif age<guess_age:
print ("think smaller!")
else :
print("think bigger!")
count =count+1
else:
print ("you huav try too many times!")
四、循环
1、whlie循环
count=0
while count<5:
print ("this is ",count)
count=count+1
print("over")
2、for循环
for i in range (0,10,2):
print ("this is :",i)
#0:从零开始
#10:大于等于10结束
#2:每次循环+2
练习实例:购物车
# Author:jin
product_list=[("iphone5",2000),
("iphone6",3000),
("iphone7",4000),
("iphone8",5000),
("iphonex",8000)]
salary=input("please enter your salary:")
shopping_cart=[]
if salary.isdigit():
salary=int (salary)
while True:
for index,item in enumerate(product_list):
print(index,item)
user_choice=input("please enter the item number you want to buy: ")
if user_choice.isdigit():
user_choice=int(user_choice)
if user_choice<len(product_list) and user_choice>-1:
product_item=product_list[user_choice]
if product_item[1]<=salary:
salary=salary-product_item[1]
shopping_cart.append(product_item)
print("Added %s into shopping cart ,your current balance is\033[31;1m %s \033[0m "%(product_item,salary))
else :
print ("\033[31;1myour current balence is insufficient!Only %s\033[0m"%(salary))
else :
print ("The product is not exist! ")
elif user_choice=="q":
print ("------shopping list------")
for i in shopping_cart:
print (i)
print ("your balance is %s"%salary)
exit()
else :
print("invilid option")
else :
print("invilid option")

浙公网安备 33010602011771号