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]