Python学习day1
一、hello world程序,基础:
>>>print "hello,world"
二、变量\字符编码
1.声明变量
>>>pname = "Alex Li" #上述代码声明了一个变量,变量名为: name,变量name的值为:"Alex Li"
2.变量定义的规则:
(1)变量名只能是字母、数字或下划线的任意组合
(2)变量名的第一个字符不能是数字
(3)以下关键字不能声明为变量名:
['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']
三、字符编码
ASCII码(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
65:A 97:a
四、用户输入
1、name = input("What is your name?")
print("Hello " + name )
2、输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
import getpass
# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")
# 打印输入的内容
print(pwd)
五、数据类型初识
1.数字
(1)2是一个整数的例子;
长整数是大一些的整数;
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(2)int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
(3)long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
2.字符串拼接:
(1)python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化输出:
name = "alex"
print "i am %s " % name
#输出: i am alex #字符串是 %s;整数 %d;浮点数%f
(2)字符串常用功能:
移除空白strip
分割split
长度len
索引index
切片
name = "my name is {name} and i am {year} old"
print(name.capitalize())
print(name.count('a'))
print(name.center(50,"-"))#一共打印50个字符,不够的用-补上
print(name.endswith("ex"))#判断一个字符串是不是以ex为结尾
#print(name.expandtabs(tabsize=30))#30相当于多上个空格,前提是在字符串里加上\t
print(name[name.find("name"):])#find索引,字符串也可以切片
print(name.format(name = 'alex',year = 23))#format格式化输出
print(name.format_map({'name':'alex','year':12}))#字典用法 很少用了
print(name.isalnum())#判断是不是阿拉伯数字和
print(name.isalpha())#判断是不是纯英文字符
print('1A'.isdecimal())#判断是不是十进制的数
print(name.isdigit())#判断是不是整数
print('_2'.isidentifier())#判断是不是合法的标识符
print(name.islower())#判断是不是全部小写
print('33'.isnumeric())#判断是不是纯数字,不能有小数点的only!
print(name.istitle())#判断是不是每个单词首字母都是大写
print(name.isupper())#判断是不是全部大写
print('+'.join(['1','2','3']))#拼接字符串
print(name.ljust(50,'*'))#字符串长50,不够在右面补齐
print(name.rjust(50,'*'))#字符串长50,不够在左面补齐
print(name.lower())#全变小写
print(name.upper())#全变小写
print('Alex\n'.lstrip())#lstrip去左边的空格和回车,rstrip去右边的
p = str.maketrans("abcdef",'123456')
print("alex li".translate(p))#加密算法
print('alex li'.replace('l','L',1))#replace替换,第三个参数为替换的数目
print('alex li'.rfind('l'))#从左往右找最右边的那个值的下标
print('1+2+3+4'.split('+'))#把字符串默认按照空格分割成列表,也可以有参数,会被当做分隔符
print('1+2\n+3+4'.splitlines())#把字符串默认按照换行符分割成列表
print('Alex Li'.swapcase())#按空格区分 每个元素倒过来
print('Alex Li'.zfill(50))#一共打印50个字符,不够的用0从左边补上
3.列表:
(1)创建列表:name_list = ['alex', 'seven', 'eric']
(2)基本操作:
索引index
切片
追加
删除
长度
切片
循环
包含
import copy
names = ["a","b","c","d","e",["f","g"]]
print(names[0:-1:2])#隔一个打印一个元素
for i in names:#遍历列表元素
print(i)
#name2 = names.copy()#浅copy,只copy第一层,
#name3 = copy.deepcopy(names)#深copy,完全克隆,一般不要用
#print(names)
#names[5][0] = "F"#改变列表里的列表元素
#names[2] = "f"
#print(name2,names)#names列表里的值改变不会影响name2里的值,是独立的
'''
names2 = [1,2,3,4]
names.append("e")
names.insert(1,"f")#插入方法,先写想插入的位置,然后给值
names[2] = "g"#改值
print(names)
#print(names.index("c"))#索引c所在的下标位置
#print(names[names.index("c")])#打印c
#names.clear()#清空列表
#print(names.count("d"))#统计出现的次数
#names.reverse()
#names.sort()#排序
names.extend(names2)#合并列表
print(names)
#print(names[1:3])#起始包括,结尾不包括,切片
#print(names[-1])#从最右边往左数
#print(names[-2:])#取最后两个值
#print(names[:3])#前面的0可以省略
#delete
#del names[1]删除元素
#del names2删除列表
#names.pop(1)#默认是删掉最后一个值,除非给下标
#names.remove("a")
'''
4.元组(不可变列表)
names = ("alex",'jack')#元组只有两个方法
#names.count()
#names.index()[
5.字典(无序)
创建字典:person = {"name": "mr.wu", 'age': 18}
常用操作:
索引
新增
删除
键、值、键值对
循环
长度
'''
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
av_catalog["大陆"]["1024"][1] = "可以在国内做镜像"
av_catalog.setdefault("taiwan",{"www.baidu.com":[1,2]})
print(av_catalog)
#av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
#print(av_catalog["大陆"]["1024"])
#ouput
#['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
'''
'''
info = {
'stu1101': 'TengLan Wu',
'stu1102': 'LongZe Luola',
'stu1103': 'XiaoZe Maliya',
}
print(info.get('stu1103'))#安全获取字典值
print('stu1104' in info)#直接判断在不在
#print(info["stu1101"])
info["stu1101"] = "武藤兰"
info["stu1104"] = "苍井空"
#del
#del info["stu1101"]
#info.pop("stu1101")
#info.popitem()#随即删除
'''
info = {
'stu1101': 'TengLan Wu',
'stu1102': 'LongZe Luola',
'stu1103': 'XiaoZe Maliya',
}
b = {
'stu1101':"Alex",
1:3,
2:5
}
'''
info.update(b)#更新字典
print(info)
c = dict.fromkeys([6,7,8],[1,{"name":"alex"},444])#初始化一个字典
print(c)
c[7][1]['name'] = "Jack"#公用一个内存,所以都改
print(c)
#print(info.items() )
'''
for i in info:#遍历字典
print(i,info[i])
for k,v in info.items():#这个不好,因为先转换成了列表再循环的
print(k,v)
六、if ... else
1.场景一、用户登陆验证:
# 提示输入用户名和密码
# 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX
import getpass
name = raw_input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')
if name == "alex" and pwd == "cmd":
print("欢迎,alex!")
else:
print("用户名和密码错误")
2.场景二、猜年龄游戏
在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了
my_age = 28
user_input = int(input("input your guess num:"))
if user_input == my_age:
print("Congratulations, you got it !")
elif user_input < my_age:
print("Oops,think bigger!")
else:
print("think smaller!")
- 场景三、任意猜
age_of_oldboy = 56
count = 0
while count <3:
guess_age = int(input("guess age:"))
if guess_age == age_of_oldboy:
print("yes,you got it.")
break
elif guess_age > age_of_oldboy:
print("think smaller...")
else:
print("think bigger!")
count +=1
if count == 3:
continue_confirm = input("do u want to keep guessing?")
if continue_confirm != 'n':
count == 0
#else:
# print("fuck off!")
七、for loop
1.最简单的循环10次
for i in range(10):
print("loop:", i )
需求一.还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环:
for i in range(10):
if i<5:
continue #不往下走了,直接进入下一次loop
print("loop:", i )
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出:
for i in range(10):
if i>5:
break #不往下走了,直接跳出整个loop
print("loop:", i )
八、while loop
count = 0
while True:
print("count:",count)
count = count +1
if count == 1000:
break

浙公网安备 33010602011771号