Python入门笔记
我是按照金角大王的关于Python的学习博客进行学习和笔记的,原作者属于金角大王,侵权立删。
按照常规,入门后的第一个程序应该是“世界,你好”代表着自己进入了程序的新世界
print(“hello world”)
对于变量的应用
(1)变量:通俗的讲就是用来存储数据,以便后续调用。
(2)变量定义的规则
① 变量名智能是字幕、数字或者下划线的任意组合
② 变量名的第一个字符不能是数字
③以下关键字不能声明为变量名
[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
(3)对于变量的赋值
name = “LiMing” #将LiMing赋值给name变量
print(“My name is”,name)#对于变量的调用
name2=name
print(name2)#将name变量中存储的内容赋值给name2变量
其中,一些不成文的规定
① 变量尽量用容易读懂的英文表示,中文作为变量名称也可以
② 常量可以用全大写的英文表示,但是只是表示,实际是可以修改的
ps:只看到了这些,如果有的话后续补充
注释
对于程序的注释,
如果是单行注释,用 # 开头,如上的程序所示
如果是对多行进行注释,可以利用单行的方法,也可以三个单引号 ‘’’ 开始,三个单引号 ‘’’ 结束
用户输入
想要实现通过用户自行输入来记录一些用户的数据,该程序如下所示。
首先可以有
MSG =“I am LiMing”
但是这样一旦程序运行,就不可以修改,除非修改程序。那么,在这里就需要一个程序可以运行,然后信息由用户输入的接口,那么就是:
username = input(“username”)
password = input(“password”)#输入用户名和密码
name = input(“name:”)#输入姓名
age = input(“age:”)#输入年龄
information='''---------------info of %s-------------
name:%s
age:%s
'''%(name,name,age)#这样就将%(name,name,age)的内容和前边的三个%s的内容进行了对应,顺序必须一致,进行整体赋值。
print(information)
对于整体赋值,还有一种形式是这样的:
info ='''----------------info of {_name}-----------
name:{_name}
age:{_age}
'''.format(_name=name,_age=age)#_name里加下划线是为了和name区分,可以不加
fomat前边有个点,不要忘记。这种方式比较方便对应,只要变量名字对应即可,而第一种方式必须顺序对应。我认为这个方式不容易出错。
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
import getpass
pwd = getpass.getpass("请输入密码:") # 将用户输入的内容赋值给 name 变量
# 打印输入的内容
print(pwd)
认识模块
模块的意思就是有很多已经写好的代码,并且封装成了一体,可以直接调用
sys
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print(sys.argv)
#输出
$ python test.py helo world
['test.py', 'helo', 'world'] #把执行脚本时传递的参数获取到了
os
import os
os.system("df -h") #调用系统命令
记录的一些程序
while循环和if判断
age_of_LiMing=25
count = 0
while count<3:
guess_age = int(input("guess age:"))
if guess_age ==age_of_LiMing:
print("yes,you got it")
break
elif guess_age > age_of_LiMing:
print("think smaller...")
else :
print("think bigger!")
count = count + 1
else:
print("you have tried too many times,fuck off !")
该程序的作用是猜年龄,并且提示猜的数字是偏大还是偏小,同时设定了只能猜三次。
for循环
for i in range(10):
print(“loop”,i)
上述程序实现的功能是i循环加一并且打印i
for i in range(0,10,2):
print(“loop”,i)
上述程序实现的功能是i从0到10,隔一个打印一个,即打印0.2.4.6.8.10
元素和列表
定义列表可以用以下方法:
names = ['A',"B",'C']
通过下标访问列表中的元素,下标从0开始计数
>>> names[0]
'A'
>>> names[2]
'C'
>>> names[-1]
'C'
>>> names[-2] #还可以倒着取
'B'
切片:取多个元素 (以下内容均取自金角大王博客)
>>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
>>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4
['Tenglan', 'Eric', 'Rain']
>>> names[1:-1] #取下标1至-1的值,不包括-1
['Tenglan', 'Eric', 'Rain', 'Tom']
>>> names[0:3]
['Alex', 'Tenglan', 'Eric']
>>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
['Alex', 'Tenglan', 'Eric']
>>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
['Rain', 'Tom', 'Amy']
>>> names[3:-1] #这样-1就不会被包含了
['Rain', 'Tom']
>>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
['Alex', 'Eric', 'Tom']
>>> names[::2] #和上句效果一样
['Alex', 'Eric', 'Tom']
追加
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
>>> names.append("我是新来的")
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
插入
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
>>> names.insert(2,"强行从Eric前面插入")
>>> names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
>>> names.insert(5,"从eric后面插入试试新姿势")
>>> names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
修改
>>> names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
>>> names[2] = "该换人了"
>>> names
['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
删除
>>> del names[2]
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
>>> del names[4]
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
>>>
>>> names.remove("Eric") #删除指定元素
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
>>> names.pop() #删除列表最后一个值
'我是新来的'
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
扩展
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
>>> b = [1,2,3]
>>> names.extend(b)
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
拷贝
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
>>> name_copy = names.copy()
>>> name_copy
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
统计
>>> names
['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
>>> names.count("Amy")
排序
>>> names
['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
>>> names.sort() #排序
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < str() #3.0里不同数据类型不能放在一起排序了,擦
>>> names[-3] = '1'
>>> names[-2] = '2'
>>> names[-1] = '3'
>>> names
['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
>>> names.sort()
>>> names
['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
>>> names.reverse() #反转
>>> names
['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
获取下标
>>> names
['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
>>> names.index("Amy")
2 #只返回找到的第一个下标
元组
元组和列表相似,但是元组不可以修改
names = ("alex","jack","eric")
程序:购物车程序
需求:
启动程序后,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额
product_list = [
('iphone',5800),
('mac pro',9800),
('bike',800),
('watch',10600),
('coffee',31),
('alex python',120)
]
shopping_list = []
salary = input("input your salary:")
if salary.isdigit():
salary = int(salary)
while True:
#for item in product_list:
# print(product_list.index(item),item)
for index,item in enumerate(product_list):
print(index,item)
user_choice = input("选择要买的商品编号:")
if user_choice.isdigit():
user_choice=int(user_choice)
if user_choice < len(product_list) and user_choice >=0 :#判断输入的数字和长度的关系
p_item = product_list[user_choice]
if p_item[1] <= salary:#买得起
shopping_list.append(p_item)
salary-=p_item[1]
print("added %s into shopping cart,your current balance is %s "%(p_item,salary) )
else:
print("\033[41;1m你的余额只剩%s了,买不起了\033[0m"%salary)
else:
print("product code [%s] is not exist"%user_choice)
elif user_choice == 'q':
print("============shopping list============")
for p in shopping_list:
print(p)
print("your current balance is %s"%salary)
exit()
else:
print("invalid option")
以上是我最近学到的内容,仅仅在这里做一个笔记,只为我以后翻看笔记方便。如果有不对的地方,还请批评指正。