-
一、变量
- 变量类型
变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
2.变量赋值
- 每个变量在使用前必须赋值,赋值后该变量才会被创建;
- 等号(=)用来给变量赋值;
- 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
-
1 # autor:guangqing xu 2 counter =100 #赋值整数型变量 3 miles = 1000.0 #浮点型 4 name = "guangqing" #字符型 5 print(counter) 6 print(miles) 7 print(name)
- 3.交互程序
-
# autor:guangqing xu name=input("name:") age=int(input("age:")) job=input("job:") salary=input("salary:") info=''' --------info of %s ---- name %s age %d job %s salary %s '''%(name,name,age,job,salary) info2=''' -------- info of {_name} ----- name:{_name} age:{_age} job:{_job} salary:{_salary} '''.format(_name=name,_age=age,_job=job,_salary=salary) info3=''' ------ info of {0} ---- name:{0} age:{1} job:{2} salary:{3} '''.format(name,age,job,salary) print(info2)
-
二、表达式 if ... else
- 1、场景1
# 提示输入用户名和密码
# 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX!
-
1 # autor:guangqing xu 2 _username = "guangqing" 3 _password = "abc123" 4 username = input("username:") 5 password = input("password:") 6 if _username==username and _password==password: 7 print("Welcome user {name} login...".format(name=username)) 8 else: 9 print("Invalid username or password!")
-
1 import getpass 2 name= raw_input("请输入用户名:") 3 password = getpass.getpass("请输入密码:") 4 if name=="guangqing" and password=="abc123": 5 print("欢迎,guangqing") 6 else: 7 print("用户名和密码错误")
- 3次输入错误则停止运行;
-
# autor:guangqing xu _username="guangqing" _password="abc123" #for i in range(0,3,1): #循环3次 count=0 while count<3: user = input("user:") password = input("password:") if user == _username and password == _password: print("welcome user %s login" % user) break else: print("wrong username or password") count +=1 print(user,password) #打印输入的内容
- 场景二、猜年龄游戏
-
1 # autor:guangqing xu 2 age_of_qing=25 3 guess_age=int(input("guess_age:")) 4 if guess_age==age_of_qing: 5 print("Congratulations, you got it !") 6 elif guess_age < age_of_qing: 7 print("think bigger!") 8 else: 9 print("think smaller!")
外层变量,可以被内层代码使用内层变量,不应被外层代码使用
-
三、表达式 for loop
- 最简单的循环10次
-
# autor:guangqing xu for i in range(0,10,1): #1为步长 print("loop:",i)
输出:loop: 0
loop: 1
loop: 2
loop: 3
loop: 4
loop: 5
loop: 6
loop: 7
loop: 8
loop: 9需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
-
# autor:guangqing xu for i in range(0,10,1): if i<5: continue #不往下走了,直接进入下一次loop
-
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
-
# autor:guangqing xu for i in range(0,10,1): if i>5: break #不往下走了,直接跳出整个loop print("loop:",i)
如何实现让用户不断的猜苹果个数,但只给最多3次机会,再猜不对就退出程序。
-
# autor:guangqing xu count_of_apple=25 for i in range(0,3,1): guess_count=int(input("guess count:")) if guess_count==count_of_apple: print("恭喜你,猜对了....") break elif guess_count>count_of_apple: print("很遗憾,猜大了...") else: print("很不幸,猜小了...") else: print("猜这么多次都猜不对...")
-
四、while loop
- 循环100次退出
-
# autor:guangqing xu count=0 while True: print("你的誓言永不变...",count) count +=1 if count==100: print("没有什么是无穷尽的...",count) break
# autor:guangqing xu count=0 while count<100: print("你的誓言永不变...",count) count +=1 else: print("没有什么是无穷尽的,除了时间...",count)
回到上面for 循环的例子,如何实现让用户不断的猜苹果个数,但只给最多3次机会,再猜不对就退出程序。
-
1 # autor:guangqing xu 2 count_of_apple=25 3 count=0 4 while count<3: 5 guess_count=int(input("guess count:")) 6 if guess_count==count_of_apple: 7 print("恭喜你,猜对了....") 8 break 9 elif guess_count>count_of_apple: 10 print("很遗憾,猜大了...") 11 else: 12 print("很不幸,猜小了...") 13 count +=1 14 else: 15 print("猜这么多次都猜不对...")
- 五、模块初识
- sys
-
# autor:guangqing xu import sys #print(sys.path) #打印环境变量 print(sys.argv) #具体路径
os
-
# autor:guangqing xu import os #cmd_res=os.system("dir") #执行命令,不保存结果 cmd_res=os.popen("dir").read() #读出具体文件 print("-->",cmd_res) os.mkdir("new_dir") #创建一个新目录
完全结合一下
-
import sys,os os.system("".join(sys.argv[1:]))#把用户的输入的参数当作一条命令交给os.system来执行
-
六、列表、元组操作
- 切片:取多个元素
-
names=["#guangqing","Jiale","3fengfei","xiahui","zhangliao","xiahui"]
#print(names[0],names[2])
#print(names[-1]) #切片 取最后一个值
#print(names[-2:]) # 切片 取最后两个值
#print(names[0:3]) #切片 取下标0至下标3之间的数字 包含0,不包含4
#print(names[:3]) #切片 取下标0至下标3之间的数字 包含0,不包含4追加、插入、修改
-
names=["#guangqing","Jiale","3fengfei","xiahui","zhangliao","xiahui"] names.append("zhangfei") #追加 到最后 names.insert(1,"zhugeliang") #插入指定的位置 强行在Jiale前面插入 names[2]="lixiaolong" # 修改 print(names)
删除
-
# autor:guangqing xu names=["#guangqing","Jiale","3fengfei","xiahui","zhangliao","xiahui"] #delete names.remove("guangqing") #删除 guangqing del names[2] =names.pop(2) #删除指定位置 names.pop() #删除最后一个 names.pop(0)
拓展
-
names=["#guangqing","Jiale","3fengfei","xiahui","zhangliao","xiahui"] names2=[1,2,3,4] names.extend(names2) #把names2 数据 合并到names print(names,names2) ['#guangqing', 'Jiale', '3fengfei', 'xiahui', 'zhangliao', 'xiahui', 1, 2, 3, 4] [1, 2, 3, 4]
拷贝
-
import copy names=["#guangqing","Jiale","3fengfei","xiahui",["hongjun","jim"],"zhangliao","xiahui"] names2=names.copy() #将names 数据复制到names2 #names2=names #names2=copy.deepcopy(names) print(names) print(names2) names[2]="许先生" #names 更改 names2 未更改 names[4][0]="qingge" #names/names2 均更改;调用 import copy --- deepcopy names更改,names2不更改 print(names) print(names2) ['#guangqing', 'Jiale', '3fengfei', 'xiahui', ['hongjun', 'jim'], 'zhangliao', 'xiahui'] ['#guangqing', 'Jiale', '3fengfei', 'xiahui', ['hongjun', 'jim'], 'zhangliao', 'xiahui'] ['#guangqing', 'Jiale', '许先生', 'xiahui', ['qingge', 'jim'], 'zhangliao', 'xiahui'] ['#guangqing', 'Jiale', '3fengfei', 'xiahui', ['qingge', 'jim'], 'zhangliao', 'xiahui'] Process finished with exit code 0
统计、排序&翻转
-
names=["#guangqing","Jiale","3fengfei","xiahui","zhangliao","xiahui"] #names.clear() #清空 #names.reverse() #反转 #names.sort() #排序 特殊符号--数字--大写-小写 print(names)
2、字符串操作
- 特性:不可修改
-
# autor:guangqing xu name = "my name is {name} and i am {year} old" print(name.capitalize()) #首字母大写 print(name.center(50,"-")) #中心 输出------my name is {name} and i am {year} old------ print(name.count("a")) #统计a 出现的次数 print(name.endswith("ld")) #判断"结尾" 是否 以ld结束 print(name.expandtabs(tabsize=30)) #输出my name is {name} and i am {year} old print(name[name.find("name"):]) #输出name is {name} and i am {year} old print(name.format(name="guangqing",year=25)) #输出my name is guangqing and i am 25 old print(name.format_map({"name":'jiale','year':'23'})) #输出my name is jiale and i am 23 old print("ab123".isalnum()) #字符测试 是否是字母和数字 print("abC".isalpha()) #是否全部是字母 print('1'.isdecimal())#是否整数 print('1q'.isdigit()) #是否整数 较为常用 print('a 1A'.isidentifier()) #判读是不是一个合法的标识符 print('33a'.isnumeric()) #判断是否为数字 print('My Name Is '.istitle()) #判断是否为标题(是否只有首字母为大写 print('guangqing xu'.title()) #将首字母改成大写 输出Guangqing Xu print('My Name Is '.isprintable()) #tty file ,drive file 是否可打印 print('My Name Is '.isupper()) #是否为大写字母(所有) print('+'.join(['1','2','3','4'])) #输出 1+2+3+4 print(name.ljust(50,"-"))#my name is {name} and i am {year} old------------ print(name.rjust(50,"-")) #------------my name is {name} and i am {year} old print("GUangqing xu".lower()) #全部转换成小写字母 print("GUangqing xu".upper()) #全部转换成大写字母 print(' guangiqng'.lstrip()) #删除左回车 print( ' guangqing '.rstrip()) #删除右回车 print( ' guangqing '.strip()) #左右回车均删除 p=str.maketrans('abcdefri','123@#678') print("defria".translate(p)) #对defria 进行翻译 输出@#6781 print("guangqing xu".replace('g','G',1)) #对第一次出现g的地方更改成G print('guangqing lil'.rfind('l')) #最右边出现l 的位置 输出12 print('1+2+3+4'.split(' ')) #输出 ['1+2+3+4'] print('1+2 +3+4'.splitlines()) #分割线 输出 ['1+2', '+3+4'] print('guangqing xu'.swapcase()) #全部转换成大写字母 print('lex li'.title()) #首字母大写 print('guangqing xu'.zfill(50)) #输出00000000000000000000000000000000000000000000lex li print( '---')