首页 > 代码库 > python学习第二节
python学习第二节
python3中的input与python2中的raw_input一样
python2中的input()用户输入的是什么类型,就被定义为什么类型,所以在python2中
input()中需要加‘’ 定义为字符串,否则会以为是变量名,然而没有这个变量名的值,所以会报错。
end=‘ ‘
将print自带的换行符换成空
输出1-10 除了7
1-100的和
找出所有奇数
#求1-2+3-4+5 ... 99的所有数的和
限制用户登录
另
字符串格式操作符
2.7
print "%s is number %d!" % ("python" ,1)
3.5
print ("%s is number %d" % ("python" ,1))
%s表示由一个字符串来替换,%d表示由一个整形来替换,%f表示由一个浮点型来替换。
程序输入和raw_input()内建函数 2.x里有,3.x里没有,2.x尽可能不用input
user = raw_input(‘Enter login name:‘)
print ‘Your login is:‘,user
输入数值字符串,并将字符串转换为整形
num = raw_input(‘Now enter a number:‘)
print ‘Doubling your number: %d‘ % (int(num) * 2)
name = “aliex li”
name2 = name #name2赋值为name
print (“my name is”,name,name2)
name = “tom” #更改name赋值 看name2会不会随其改变
print (name,name2)
实验结果为不随其改变,原因是name2并没有指向name,而是直接指向alex li
变量定义规则:
1 变量名只能是字母、数字、下划线的任意组合
2 变量名的第一个字符不能是数字
3 还有一些关键字不能声明为变量名 例如and as break assert class等等
变量名一般书写方法
gf_of_oldboy = “xxx” #下划线
GFOfOldBoy = “xxx” #首字母大写
PIE =” apple pie” 自定义常量,用大写,意思是不应更改
input 用户输入
username = input("your username :")
password = input("your password :")
print ("your name is %s ,your password is %s" % (username,password))
input输入并转换字符类型
age = int(input(‘your age :‘))
格式化输出小例子
name = input(‘your name :‘)
age = int(input(‘your age :‘))
print(type(age)) #打印变量类型
job = input(‘your job :‘)
info = ‘‘‘
--------------info of %s--------------
name: %s
age: %d
job: %s‘‘‘ % (name,name,age,job)
print (info)
另一种格式化拼接输出
name = input(‘your name :‘)
age = int(input(‘your age :‘))
print(type(age)) #打印变量类型
job = input(‘your job :‘)
info2 = ‘‘‘
--------------info2 of {_name}--------------
name: {_name}
age: {_age}
job: {_job}
‘‘‘.format(_name = name,
_age = age,
_job = job)
print (info2)
第三种格式化拼接输出
name = input(‘your name :‘)
age = int(input(‘your age :‘))
print(type(age)) #打印变量类型
job = input(‘your job :‘)
info3 = ‘‘‘
--------------info3 of {0}--------------
name: {0}
age: {1}
job: {2}
‘‘‘.format(name,age,job)
print (info3)
密文输入,调用getpass模块,该模块在Pycharm中不能使用,可以用cmd中执行py文件
import getpass
name = input(‘your name :‘)
age = getpass.getpass(‘your age :‘)
job = input(‘your job :‘)
info3 = ‘‘‘
--------------info3 of {0}--------------
name: {0}
age: {1}
job: {2}
‘‘‘.format(name,age,job)
print (info3)
简单的if语句例子
username = ("tom")
password = ("abc")
import getpass
name = input("Enter your name :")
passwd = getpass.getpass("Enter your password")
if name == username and passwd == password:
print("Welcome user {user} login".format(user = username))
else:
print("Invalid username or password")
错误提示
IndentationError 缩进错误
一级代码要顶格写
if语句
age_of_old_boy = 56
guess_age = int(input("guess age :"))
if guess_age == age_of_old_boy:
print("bingo,you got it")
elif guess_age > age_of_old_boy:
print("try to smaller")
else:
print("try to bigger")
while循环
age_of_old_boy = 56
count = 0
while True:
if count == 3:
break
guess_age = int(input("guess age :"))#这个赋值相当于把上面的if结束了,所以下面要用if而不是elif
if guess_age == age_of_old_boy:
print("bingo,you got it")
break
elif guess_age > age_of_old_boy:
print("try to smaller")
else:
print("try to bigger")
count += 1
结尾增加判断输出:
age_of_old_boy = 56
count = 0
while count < 3:
guess_age = int(input("guess age :"))
if guess_age == age_of_old_boy:
print("bingo,you got it")
break
elif guess_age > age_of_old_boy:
print("try to smaller")
else:
print("try to bigger")
count +=1
if count == 3:
print ("you have tried too many times,fuck off")
or
age_of_old_boy = 56
count = 0
while count < 3:
guess_age = int(input("guess age :"))
if guess_age == age_of_old_boy:
print("bingo,you got it")
break
elif guess_age > age_of_old_boy:
print("try to smaller")
else:
print("try to bigger")
count +=1
else:
print ("you have tried too many times,fuck off")
while循环升级版
age_of_old_boy = 56
count =0
while count <3:
guess_age = int(input("guess age :"))
if guess_age == age_of_old_boy:
print("bingo,you got it")
break
elif guess_age > age_of_old_boy:
print("try to smaller")
else:
print("try to bigger")
count +=1
if count ==3:
keep_guessing = input("Do you want to keep guessing ?")
if keep_guessing != ‘no‘:
count =0
continue 功能是跳出本次循环,继续下一次循环
for i in range(0,10):
if i <3:
print(‘loop‘,i)
else:
continue
print(‘hehe‘)
for循环套for循环,break跳出本次循环
for i in range(10):
print(‘-----‘,i)
for j in range(10):
print(j)
if j >5:
break
读和写
fout = open(‘output.txt‘,‘w‘) #打开文件output,以W参数模式
line1 = "This here‘s the wattle,\n"
fout.write(line1) #将line1写到output.txt
line2 = ‘the emblem of our land.\n‘
fout.write(line2) #将line2写到output.txt
fout.close() #关闭文件
文件名和路径
os模块提供了用于操作文件和目录的函数(os代表operating system,即操作系统)。
os.getcwd 返回当前目录的名称
import os
cwd = os.getcwd()
print(cwd)
cwd表示current working directory 当前工作目录,是相对路径。
os.path.abspath(‘memo.txt’)来寻找文件绝对路径。
absolute_path=os.path.abspath(‘output.txt‘)
print(absolute_path)
利用os.path.exists(‘memo.txt’)来判断文件是否存在。
import os
exists=os.path.exists(‘relativity.txt‘)
print(exists)
还有检查是否为目录、是否为文件、等等具体参考《像计算机科学家一样思考python》147页。(os.path.isdir os.path.isfile os.listdir(cwd)
保存脚本为文件例子:
say_daddy=‘‘‘
#/usr/bin/env python
#-*- coding:utf-8 -*-
#Author: Yuqiuyang
baba = "爸爸"
count = 0
while True:
if count == 10:
break
呐喊 = input(‘叫爸爸 :‘)
if 呐喊==baba:
print(‘乖儿子,爽不爽‘)
break
elif 呐喊 != baba:
print(‘看我干不死你‘)
count +=1
print(‘啊 射了,好累。。‘)‘‘‘
fout = open("say_daddy.py",‘w‘)
fout.write(say_daddy)
fout.close()
模块初识别
import sys
print(sys.path) #打印绝对路径
print(sys.argv) #打印相对路径,还可以打印参数
import os
cmd_res = os.system("dir") #os.system()可以直接与系统交互,执行dir命令,不保存结果
print(cmd_res) #并不能打印出dir命令,因为system()直接输出到屏幕,打印结果为0,执行成功意思。
import os
cmd_res = os.popen("dir") #打印为内存对象地址
print(cmd_res)
字符串操作
name = ‘my name is alex‘
print(name.count(‘a‘)) #计数a有多少个
print(name.capitalize())#首字母大写
print(name.center(50,‘-‘))#重复50遍-,并将name至中间
print(name.endswith(‘ex‘))#判断以ex结尾
name2 = ‘my \tname is alex‘
print(name2.expandtabs(tabsize=30))#将tab键转换为30个空格
print(name.find(‘e‘)) #查找索引
print(name[name.find(‘names‘):])#字符串也可以切片
name3 = ‘my name is {mingzi},and my age is {years}‘
print(name3.format(mingzi = ‘yuqiuyang‘,years = 23)) #格式操作
print(name3.format_map({‘mingzi‘:‘yuqiuyang‘,‘years‘:‘23‘})) #字典的方式格式操作
print(‘abc123‘.isalnum()) #包含英文字符和数字为true
print(‘abc123=‘.isalnum())#包含特殊字符为false
print(‘abC‘.isalpha())#判断是否为英文字母
print(‘1‘.isdecimal())#判断是否为十进制
print(‘1‘.isdigit())#判断是否为数字
print(‘a1A‘.isidentifier())#判断是不是一个合法的变量名
print(‘A‘.islower())#判断是否为小写
print(‘2‘.isnumeric())#判断是否为数字
print(‘ ‘.isspace())#判断是否为空格
print(‘My Name Is ‘.istitle())#判断是否每个首字母大写
print(‘My name is‘.isprintable())#判断是否能打印。tty file,drive file不能打印
print(‘MY NAME IS‘.isupper())#判断是否都为大写
print(name.ljust(50,‘*‘))# 这个是Ljust,长50,没有用*号结尾补齐
print(name.rjust(50,‘-‘))# 这个是Ljust,长50,没有用-号开头补齐
print(‘ALEX‘.lower())#将大写变成小写
print(‘ALEX‘.upper())#将小写变成大写
print(‘ALEX\n‘.lstrip())#将左边空格和回车,右边的不去除
print(‘---‘)
print(‘ ALEX\n‘.rstrip())#将右边空格和回车,左边的不去除
print(‘---‘)
print(‘ ALEX\n‘.strip())#去掉所有空格和回车
print(‘---‘)
p = str.maketrans(‘abcdefghi‘,‘123456789‘)#字母和数字一一对应
print(‘abed bi‘.translate(p))#将前面的字母转换成相应的数字
print(‘alex li‘.replace(‘l‘,‘L‘))#将l替换成L
print(‘alex li‘.replace(‘l‘,‘L‘,1))#将第1个l替换成L
print(‘alex li‘.rfind(‘l‘))#找到最右边l的下标
print(‘al ex li‘.split(‘l‘))#将字符串以l做分隔符做成列表
print(‘1+2+3+4‘.split(‘+‘))#将字符串以+做分隔符做成列表
print(‘1+2+3+4‘.splitlines())#将以换行符为分隔符做列表
print(‘Alex Li‘.swapcase())#字母大小写取反
print(‘alex li‘.title())#首字母大写
print(‘alex li‘.zfill(50))#字数不够在前面补齐0
python学习第二节