IDE (集成开发环境)

VIM #经典的linux下的文本编辑器.
Emacs #linux文本编辑器,比vim 更容易使用
Eclipse #Java IDE ,支持python,c,c++
Visual Studio #微软开发的IDE ,支持python, c++,java,c#
sublime python开发
pycharm 是主要用于python 开发的IDE
notepad++

字符串格式化输出

占位符 %s %d 必须输入数字 %f 输入的小数

name = input( "Name: ")
age = int(input("Age: "))
job = input("Job: ")
salary =input("Salary: ")

#判断salary输入的是不是数字
# if salary.isdigit():
#     salary = int(salary)
# else:
#     exit("must input digit")  #退出程序

msg = '''
-------------- info  of %s  ----------------
Naem : %s
Age : %s     
Job : %s    
Salary : %d
----------------- end  ----------------------
''' % (name,name,age,job,salary)

print( msg)

数据运算

数据类型的初识

1.数字
1.1整数int(integer)
1.11整型,代表的数据有限,正负2的30次方(1073741824)
1.12长整型,代表的数据较大
在python3已经不区分整型与长整型,统一叫整型
2.字符串
2.11.salary.isdigit 中间的点的意思取这个字符串的属性
3.浮点型,是用来处理实数,是所有理数和无理数的集合,在大多数时候都是小数
4.复数:

布尔值

只有两种状态,分别是真(True),假(False)

for循环

for  i  in  range(3):
    print(i)

for 循环打印奇数

for  i  in  range(1,101,2):     # 2这个数字叫步长

        print(i)
for  i  in  range(1,101):
    if  i % 2 == 1     #取余
        print(i)

这两种方式,执行结果一样…

打印某段中间段的数字不打印.
for  i  in  range(1,101):
    if  i < 50 or i  > 70:
        print(i)

这样50到70就不会被打印…

循环登陆
_user = "aa"
_password = "123"

for i in range(3):
    username = input("Username: ")
    userPassword = input("userPassword: ")
    if username == _user and userPassword == _password :
        print("Welcome %s login ....." % _user)
        break    #终端,退出循环
    else:
        print("账号密码错误,请重新输入")
加上一个变量,多次错误的时候进行一个判断
_user = "aa"
_password = "123"

pass_authention = False
for i in range(3):
    username = input("Username: ")
    userPassword = input("userPassword: ")
   if username == _user and userPassword == _password :
        print("Welcome %s login ....." % _user)
        pass_authention = True
        break
    else:
        print("账号密码错误,请重新输入")
if not pass_authention :
    print("不要试了")
_user = "aa"
_password = "123"

for i in range(3):
    username = input("Username: ")
    userPassword = input("userPassword: ")
   if username == _user and userPassword == _password :
        print("Welcome %s login ....." % _user)
        break   #for循环,终端,
    else:
        print("账号密码错误,请重新输入")
else:  #只要上面for循环能够正常执行完毕,就执行下面语句,
    print("不要试了")

上面两个执行结果一样…

用while循环修改
_user = "aa"
_password = "123"
conuter = 0
while conuter < 3:
    username = input("Username: ")
    userPassword = input("userPassword: ")
   if username == _user and userPassword == _password :
        print("Welcome %s login ....." % _user)
        break   #for循环,终端,
    else:
        print("账号密码错误,请重新输入")
    conuter += 1
else:  #只要上面for循环能够正常执行完毕,就执行下面语句,
    print("不要试了")

再多加一个判断

_user = "aa"
_password = "123"
conuter = 0
while conuter < 3:
    username = input("Username: ")
    userPassword = input("userPassword: ")
    if username == _user and userPassword == _password :
        print("Welcome %s login ....." % _user)
        break   #for循环,终端,
    else:
        print("账号密码错误,请重新输入")
    conuter += 1
    if conuter == 3:
        keep_going_choec = input("还要试试?: [y/n]")
        if keep_going_choec == "y":
            conuter = 0
else:  #只要上面for循环能够正常执行完毕,就执行下面语句,
    print("不要试了")

continue #跳出本次循环,继续下一次循环.
break # 跳出当层程序循环
exit #

多层关联,同时跳出循环
exit_flag = False    #先定义

for i in range (10):
    if i < 5:
        continue
    print(i)
    for j in range(10):
        print(j)
        if j == 6:
            exit_flag = True    #当定义的等于True的时候,跳出循环
            break
    if exit_flag:   #当上面跳出循环,这层也跳出循环
        break

字符串,列表,元组,字典

列表

列表的创建用中括号

a=['aa','bb','cc','dd','ee']
对列表进行增删改查

通过列表的索引值来取对应的信息

切片查询
print(a[1])

执行结果

bb

切片,同时取多个,中括号中间加个冒号,再加上对应的下标

print(a[1:3])

执行结果

['bb', 'cc']

如果在不知道这个列表有多少的情况下,想看所有,就是冒号后面什么都不加

print(a[1:])  #取到最后
print(a[1:-1])   #取到倒数第二值
print(a[1:-1:1]) #从左到右一个一个去取,后面的这个1,叫步长..
print(a[3::-1])   #从右到左,从下标是3的开始一个一个的取.

执行结果

['bb', 'cc', 'dd', 'ee']
['bb', 'cc', 'dd']
['bb', 'cc', 'dd']
['dd', 'cc', 'bb', 'aa']

append #这个插入直接添加到列表的最后
insert #可以把某个内容添加到某一个位置

####### oppend插入

a=['aa','bb','cc','dd','ee']
a.append('ff')
print(a)

执行结果

['aa', 'bb', 'cc', 'dd', 'ee', 'ff']

####### insert插入

a=['aa','bb','cc','dd','ee']
a.insert(1,'ff')
print(a)

执行结果

['aa', 'ff', 'bb', 'cc', 'dd', 'ee']
修改

直接通过赋值操作,就是修改…

a=['aa','bb','cc','dd','ee']
a[1]='tt'
print(a)

执行结果

['aa', 'tt', 'cc', 'dd', 'ee']

同时修改多个

a=['aa','bb','cc','dd','ee']
a[1:3]=['a','b']
print(a)

执行结果

['aa', 'a', 'b', 'dd', 'ee']
删除

####### remove

a=['aa','bb','cc','dd','ee']
a.remove('aa')    #后面直接添加需要删除的值
print(a)

执行结果

['bb', 'cc', 'dd', 'ee']

####### POP

a=['aa','bb','cc','dd','ee']
b=a.pop(1)    #根据索引来删除对应的值
print(a)
print(b)  #返回删除的值

执行结果

['aa', 'cc', 'dd', 'ee']
bb

####### del

a=['aa','bb','cc','dd','ee']
del a[0]  #可以删除所有
print(a)

执行结果

['bb', 'cc', 'dd', 'ee']
a=['aa','bb','cc','dd','ee']
del a   #对象被删除了
print(a)

执行结果

print(a)
NameError: name 'a' is not defined
其他操作
count

主要作用统计某个元素在列表中出现的次数.

pr=['to','not','or','be','to','no'].count('to')
print(pr)

执行结果

2
extend

主要在列表的末尾一次性追加另一个序列中的多个值…

b = [1,2,3]
c = [4,5,6]
b.extend(c)

print(b)
print(c)

执行结果

[1, 2, 3, 4, 5, 6]
[4, 5, 6]
index

通过列表值来取某个值的位置(索引值又叫下标)

a = ['aa','bb','cc','dd','ee']
print(a.index('bb'))

执行结果

1
用index取在同一个列表中多个相同值的索引值
a = ['aa','bb','cc','dd','ee','dd','cc']
first_cc_index =a.index("cc")    #先取出,在大列表中第一个值的索引值
print("first_cc_index",first_cc_index)
little_list = a[first_cc_index+1:]     #切片取小列表

second_cc_index = little_list.index("cc")  #取第二个值在小列表的位置
print("second_cc_index",second_cc_index)

second_cc_index_in_big_list = first_cc_index +second_cc_index + 1  #通过第一值的位置和小列值的位置,来计算出,第二个值在大列表的位置
print("second_cc_index_in_big_list",second_cc_index_in_big_list)
print("second cc:",a[second_cc_index_in_big_list])

执行结果

first_cc_index 2
second_cc_index 3
second_cc_index_in_big_list 6
second cc: cc
reverse

列表值倒序

a = ['aa','bb','cc','dd','ee','dd','cc']
a.reverse()
print(a)

执行结果

['cc', 'dd', 'ee', 'dd', 'cc', 'bb', 'aa']
sort

排序由小到大
也可以对字母进行排序,字母是按照Assic码列表排序

a = [1,0,3,9,2,4,6,7]
a.sort(reverse=True) 
#a.reverse()  
print(a)

执行结果

[0, 1, 2, 3, 4, 6, 7, 9]