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!")

  1. 场景三、任意猜

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-11-26 15:22  ZzXx1210  阅读(1095)  评论(0)    收藏  举报